[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] for-each -- strange multiplication effects
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|