|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Strange Parameter Behavior
Given the XML:
<a id="1"> <b id="2"> <c id="3"/> <c id="4"/> <c id="5"/> <c id="6"/> </b> <b id="7"> <c id="8"/> <c id="9"/> <c id="10"/> </b> <b id="11"> <c id="12"/> <c id="13"/> <c id="14"/> </b> </a> And XSLT of: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output encoding="ascii" omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:param name="param-id" select="/a/b/c[1]/@id"/> <xsl:template match="/"> param-id: <xsl:value-of select="$param-id"/><br/> prev: <xsl:value-of select="//c[@id = $param-id]/preceding::c[1]/@id"/><br/> next: <xsl:value-of select="//c[@id = $param-id]/following::c[1]/@id"/><br/> </xsl:template> </xsl:stylesheet> I get the following expected results when passing in a parameter: param-id: 12 prev: 10 next: 13 However, when I don't pass anything in and let the default parameter take over, I get this output: param-id: 3 prev: 6 next: 4 Could anyone explain this? Is there a RTF at work here? When I wrap the default parameter value with a string() function, the stylesheet returns the expected results: param-id: 3 prev: next: 4 Is that the "correct" solution? More importantly, does anyone know why case 2 produces those results? It evaluates 'next' correctly, but why is 'prev' so far off? Thanks in advance! Mike _________________________________________________________________ Join the world?s largest e-mail service with MSN Hotmail. http://www.hotmail.com 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
|

Cart








