Subject: RE: Need help with XSLT: adding new node btw existing elements
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 16 Aug 2006 19:12:06 +0100
|
> 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
|