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: "Nishi Bhonsle" <nishiandprafull@xxxxxxxxx>
Date: Wed, 16 Aug 2006 14:57:46 -0700
David:
I tried this but in the output, i notice that the namespace gets added
as attributes to the environment as well as variable elements. Is
there way that can be avoided?

xslt -

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:b="blabla">
<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="b:environment">
<environment>
<variable id="SAROOTDIR" value="D:\Dir1"/>   	
 <variable id="SADATADIR" value="D:\Dir2"/> 	
 </environment>
</xsl:template>
</xsl:stylesheet>

and the output looks like -

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="C:\test1.xslt"?>
<test xmlns="blabla">
<comp id="New">
<process-type id="home">
<environment xmlns="" xmlns:b="blabla">
<variable xmlns="" id="SAROOTDIR" value="D:\Dir1"/>
<variable xmlns="" id="SADATADIR" value="D:\Dir2"/>
</environment>
</process-type>
</comp>
</test>

Thanks!


On 8/16/06, David Carlisle <davidc@xxxxxxxxx> wrote:


<xsl:template match="environment">

that matches elements called environment in no namespace but you have no
such elements, your original example looked like:

<test xmlns="blabla">
<comp id="New">
<process-type id="home" module-id="TESTER" status="enabled">
<environment>

so your document has an element environment in the namespace blabla
to match an element of that name put
xmlns:b="blabla" in your xsl stylesheet and use

<xsl:template match="b:environment">

(This is a FAQ)

David

Current Thread