DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6179>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6179 Fails to pass correct value as parameter using apply-templates Summary: Fails to pass correct value as parameter using apply- templates Product: XalanJ2 Version: 2.2.x Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Xalan-CmdLine AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Michael Kay wrote: >> <xsl:template match="B"> >> <xsl:apply-templates select="C"> >> <xsl:with-param name="match_number" select="position()"/> >> </xsl:apply-templates> >></xsl:template> >> >><xsl:template match="C"> >> <xsl:param name="match_number"/> >> <xsl:value-of select="$match_number"/> >></xsl:template> >> >> >>This one did not work, only outputs 0's. > > >I think that's a bug: position() should never by zero. Which processor? Mm.. Xalan-2.2.14. But wouldn't you suspect it to be the parameter passing rather than position() as it works when I use call-template rather than apply-templates? [troi]~>more demo.xml <?xml version="1.0" encoding="iso-8859-1"?> <mailboxes> <mailbox user="userA"> <mail><subject>SubA</subject></mail> </mailbox> <mailbox user="userB"> <mail><subject>SubB1</subject></mail> <mail><subject>SubB2</subject></mail> </mailbox> <mailbox user="userC"> <mail><subject>SubC1</subject></mail> <mail><subject>SubC2</subject></mail> </mailbox> </mailboxes> [troi]~>more demo.xsl <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output encoding="iso-8859-1"/> <xsl:template match="mailboxes"> <xsl:apply-templates select="mailbox"/> </xsl:template> <xsl:template match="mailbox"> <xsl:apply-templates select="mail"> <xsl:with-param name="match_number" select="position()"/> </xsl:apply-templates> </xsl:template> <xsl:template match="mail"> <xsl:param name="match_number"/> A <xsl:value-of select="$match_number"/> </xsl:template> </xsl:stylesheet> [troi]~>java org.apache.xalan.xslt.Process -IN demo.xml -XSL demo.xsl -TEXT A 0 A 0 A 0 A 0 A 0 With call-template: [troi]~>more demo2.xsl <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output encoding="iso-8859-1"/> <xsl:template match="mailboxes"> <xsl:apply-templates select="mailbox"/> </xsl:template> <xsl:template match="mailbox"> <xsl:call-template name="mail"> <xsl:with-param name="match_number" select="position()"/> </xsl:call-template> </xsl:template> <xsl:template match="mail" name="mail"> <xsl:param name="match_number"/> A <xsl:value-of select="$match_number"/> </xsl:template> </xsl:stylesheet> [troi]~>java org.apache.xalan.xslt.Process -IN demo.xml -XSL demo2.xsl -TEXT A 1 A 2 A 3 Morten
