Subject: [xsl] behavior of xsl:value-of with empty string From: "Lars Nyman" <larsnyman@xxxxxxxxxxxxx> Date: Mon, 30 Sep 2002 13:33:13 -0700 |
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? 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSLT template from XSLT + XML, Mulberry Technologie | Thread | [xsl] key selecting problem., thomas |
[xsl] conditional inlcudes -is it p, Vedu Hariths | Date | [xsl] key selecting problem., thomas |
Month |