Subject: RE: [xsl] behavior of xsl:value-of with empty string From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Tue, 1 Oct 2002 16:55:49 +0100 |
> The XSLT spec says that the xsl:value-of element creates a > text node in the result tree, but if the string is empty, no > text node should be created. I have a situation where a rtf > is initially bound to a variable, then converted to a nodeset > using an extension function and I am, thus, able to detect > the processor's (lack of) adherence to this rule. And I > believe msxml may not be following the spec. Can someone, > please, confirm my suspicion or correct my misunderstanding? The specification of msxsl:node-set() is entirely under Microsoft's control. Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx > > If I run the stylesheet below, I get the following output: > > test id=1: count(child::node())=1, expected 0 > test id=2: count(child::node())=0, expected 0 > test id=3: count(child::node())=3, expected 1 > test id=4: count(child::node())=2, expected 1 > test id=5: count(child::node())=2, expected 1 > test id=6: count(child::node())=1, expected 1 > test id=7: count(child::node())=1, expected 1 > test id=8: count(child::node())=1, expected 1 > test id=9: count(child::node())=3, expected 2 > > whereas I had expected to get: > > test id=1: count(child::node())=0, expected 0 > test id=2: count(child::node())=0, expected 0 > test id=3: count(child::node())=1, expected 1 > test id=4: count(child::node())=1, expected 1 > test id=5: count(child::node())=1, expected 1 > test id=6: count(child::node())=1, expected 1 > test id=7: count(child::node())=1, expected 1 > test id=8: count(child::node())=1, expected 1 > test id=9: count(child::node())=2, expected 2 > > Lars > > > <?xml version="1.0"?> > <xsl:transform version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:msxsl="urn:schemas-microsoft-com:xslt" > exclude-result-prefixes="msxsl"> > > <xsl:template match="/"> > <xsl:variable name="tests-rtf"> > <tests> > <test id="1" children="0"><xsl:value-of select="''"/></test> > <test id="2" children="0"><xsl:value-of > select="''"/><xsl:value-of select="''"/></test> > <test id="3" children="1"><xsl:value-of > select="''"/><element/><xsl:value-of select="''"/></test> > > <test id="4" children="1"><xsl:value-of > select="''"/><xsl:value-of > select="''"/><element/><xsl:value-of select="''"/></test> > <test id="5" children="1"><xsl:value-of > select="''"/><element/><xsl:value-of > select="''"/><xsl:value-of select="''"/></test> > <test id="6" children="1"><xsl:value-of > select="''"/><xsl:value-of > select="''"/><element/><xsl:value-of > select="''"/><xsl:value-of select="''"/></test> > > <test id="7" children="1"><xsl:value-of > select="'1'"/><xsl:value-of select="''"/></test> > <test id="8" children="1"><xsl:value-of > select="'1'"/><xsl:value-of select="''"/><xsl:value-of > select="''"/></test> > <test id="9" children="2"><xsl:value-of > select="'1'"/><xsl:value-of > select="''"/><element/><xsl:value-of select="''"/></test> > </tests> > </xsl:variable> > > <xsl:for-each select="msxsl:node-set($tests-rtf)/tests/test"> > test id=<xsl:value-of select="@id"/>: > count(child::node())=<xsl:value-of > select="count(child::node())"/>, expected <xsl:value-of > select="@children"/><br/> > </xsl:for-each> > </xsl:template> > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Accessing multiple values, Clifford, Karen | Thread | RE: [xsl] behavior of xsl:value-of , Dion Houston |
[xsl] Accessing multiple values of , Clifford, Karen | Date | RE: [xsl] xsl/xml transformation to, Michael Kay |
Month |