Subject: Re: [xsl] Need help with XSLT: adding new node btw existing elements From: "Nishi Bhonsle" <nishiandprafull@xxxxxxxxx> Date: Wed, 16 Aug 2006 09:54:25 -0700 |
Hi: Trying to load the following xsl in XMLSpy gives document mal-formed error. Also, what if i have several occurences of the environment element in the doc and i need to add the new nodes to a specific occurence only? ie If I have to add the new nodes to the environment tag that has comp id = New, how can I change the xsl to do that?
<?xml version = '1.0' encoding = 'UTF-8'?> <test xmlns="blabla"> <comp id="Old"> <process-type id="home" module-id="TESTER1" status="enabled"> <environment> <variable id="TMP" value="C:\DOCUME~1\manez\LOCALS~1\Temp"/> </environment> </process-type> </comp>
<comp id="New"> <process-type id="home" module-id="TESTER" status="enabled"> <environment> </environment> </process-type> </comp> </test>
The transform requires to modify only the "environment" element, and keeping rest of the structure same. To solve this problem, you require an identity transform template, and a template to process the "environment" element.
<xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*" /> </xsl:copy> </xsl:template>
<xsl:template match="environment"> <environment> <variable id="SAROOTDIR" value="D:\Dir1"/> <variable id="SADATADIR" value="D:\Dir2"/> </environment> </xsl:template>
On 8/16/06, Nishi Bhonsle <nishiandprafull@xxxxxxxxx> wrote: > Hi: > > I have the following input xml document, I need to write an xsl to transform > it to the output xml document. > > Input xml document - > > <?xml version = '1.0' encoding = 'UTF-8'?> > <test xmlns="blabla"> > <comp id="New"> > <process-type id="home" module-id="TESTER" status="enabled"> > <environment> > </environment> > </process-type> > </comp> > </test> > > Output xml document - > > <?xml version = '1.0' encoding = 'UTF-8'?> > <test xmlns="blabla"> > <comp id="New"> > <process-type id="home" module-id="TESTER" status="enabled"> > <environment> > <variable id="SAROOTDIR" value="D:\Dir1"/> > <variable id="SADATADIR" value="D:\Dir2"/> > </environment> > </process-type> > </comp> > </test> > > Can someone please help write an xsl to transform the above input xml > document into the output xml document? > > Thanks much!
-- Regards, Mukul Gandhi
http://gandhimukul.tripod.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Need help with XSLT: addi, Mukul Gandhi | Thread | Re: [xsl] Need help with XSLT: addi, Abel Online |
Re: [xsl] more elegant way of doing, G. Ken Holman | Date | Re: [xsl] more elegant way of doing, Steve |
Month |