Hello Group,
I am just about tearing my hair out with this one and thought someone may
have some insight. I have a transform that wasn't working so I grabbed the
nearest debugger (xselerator) and saw that it works just fine. Now what I
mean by not working is that it just silently fails to produce the expected
output... no exceptions are being thrown. Xselerator uses msxml 3 so it's
not really helping me see the problem in .net 1.1.
Given the following xml:
<navitem title="Main" level="0">
<navitem title='Welcome' link='someurl.aspx' level="1" ></navitem>
<navitem title='Welcome' link='someurl.aspx' level="1"></navitem>
<navitem title='Welcome' link='someurl.aspx' level="1"></navitem>
<navitem title='Welcome' link='someurl.aspx' level="1">
<navitem title='Welcome' link='someurl.aspx' level="2"></navitem>
<navitem title='Welcome' link='someurl.aspx' level="2"></navitem>
</navitem>
</navitem>
and the following xslt:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<navitems>
<xsl:apply-templates select="navitem" />
</navitems>
</xsl:template>
<xsl:template match="navitem">
<xsl:choose>
<xsl:when test="number(@level) > 0">
<xsl:element name="navitem">
<xsl:attribute name="title"><xsl:value-of select="@title"
/></xsl:attribute>
<xsl:attribute name="link"><xsl:value-of select="@url"
/></xsl:attribute>
<xsl:apply-templates select="navitem" />
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="navitem" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
All i will get will be: <navitems></navitems> with system.xml . With the
debugger that uses msxml 3 I get my expected result tree that includes all
elements but those with a level less than 1.
Anyone see a flaw in something I am doing that system.xml doesn't like?
Regards,
Jason S.