Subject: Re: [xsl] Need help with XSLT: adding new node btw existing elements From: "Nishi Bhonsle" <nishiandprafull@xxxxxxxxx> Date: Wed, 16 Aug 2006 11:47:27 -0700 |
I did add the xsl:stylesheet element but i dont get the desired output ie the variable tags dont get added in.
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <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> </xsl:stylesheet>
> Trying to load the following xsl in XMLSpy gives document > mal-formed error.
Mukul left out the xsl:stylesheet element to reduce noise and save typing.
If you didn't spot that, then we really are starting from the basics...
Michael Kay http://www.saxonica.com/
> 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> > > On 8/16/06, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote: > > 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, Michael Kay | Thread | Re: [xsl] Need help with XSLT: addi, David Carlisle |
[xsl] Are nested brackets legal? Is, Abel Online | Date | Re: [xsl] Process only nodes on a s, Marco Baumgartl |
Month |