RE: [xsl] Need help with XSLT: adding new node btw existing elements

Subject: RE: [xsl] Need help with XSLT: adding new node btw existing elements
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 16 Aug 2006 22:21:58 +0100
You also need to allow for the fact that the environment element is in
namespace blabla.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Nishi Bhonsle [mailto:nishiandprafull@xxxxxxxxx] 
> Sent: 16 August 2006 19:47
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Need help with XSLT: adding new node btw 
> existing elements
> 
> 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>
> 
> 
> On 8/16/06, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > > 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