Subject: [xsl] for-each -- strange multiplication effects From: mario.jeckle@xxxxxxxxxxxxxxxxxxx Date: Tue, 16 Jan 2001 14:12:43 +0100 |
Hello, discovered some strange effect using for-each. When the predicate is true for one element that matches the node set (say "//x") specified by the select attribute of for-each it it repeated count(//x) times even when the predicate is false. Stylesheet: <?xml version="1.0" encoding="UTF-8"?> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="UTF-8"/> <xsl:template match="test"> <xsl:for-each select="//test[@x]"> this should only happen once! <xsl:value-of select="@x"/> </xsl:for-each> </xsl:template> </xsl:transform> Input: <?xml version="1.0" encoding="UTF-8"?> <doc> <test/> <test x="42"/> <test y="99"/> <test/> </doc> Output: <?xml version="1.0" encoding="UTF-8"?> this should only happen once! 42 this should only happen once! 42 this should only happen once! 42 this should only happen once! 42 Am I misinterpreting XPaths node set expression here? IMHO the body of for-each should only be executed for all nodes which adhere to the specified select pattern including its predicate. Mario ----------------------- Mario Jeckle mario.jeckle@xxxxxxxxxxxxxxxxxxx DaimlerChrysler Corporate Research DaimlerChrysler Forschungszentrum Ulm URL: http://www.jeckle.de XML Resource Center: ----------------------- XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] select="substring-before(, Jeni Tennison | Thread | Re: [xsl] for-each -- strange multi, David Carlisle |
[xsl] select="substring-before($str, phil_endecott | Date | Re: [xsl] select="substring-before(, David Carlisle |
Month |