You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Dean Wang (JIRA)" <xa...@xml.apache.org> on 2011/09/21 16:09:09 UTC
[jira] [Commented] (XALANJ-2543) document() function changed the
context inside for-each
[ https://issues.apache.org/jira/browse/XALANJ-2543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13109518#comment-13109518 ]
Dean Wang commented on XALANJ-2543:
-----------------------------------
I tested M$XML and Saxon. It seems to be a common behaviour. Could anyone tell me why document() function could affect the context outside the XPath expression?
http://www.w3.org/TR/xslt#document did not tell any thing about the context change.
> document() function changed the context inside for-each
> -------------------------------------------------------
>
> Key: XALANJ-2543
> URL: https://issues.apache.org/jira/browse/XALANJ-2543
> Project: XalanJ2
> Issue Type: Bug
> Security Level: No security risk; visible to anyone(Ordinary problems in Xalan projects. Anybody can view the issue.)
> Components: XPath-function
> Affects Versions: 2.7.1
> Environment: Java 1.5 and 1.6
> Reporter: Dean Wang
> Priority: Minor
> Labels: context, document, function
>
> I don't know if this is default/standard behaviour. But Sun JRE work fine with it, with Xalan 2.6.0
> XSL:
> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="improvisation">
> <my:order>
> <order>3</order>
> <order>4</order>
> <order>2</order>
> <order>1</order>
> </my:order>
>
> <xsl:template match="/">
> <html>
> <body>
> <ul>
> <!-- document('')/*/my:order/order -->
> <xsl:for-each select="document('')//my:order/order" >
> <xsl:variable name="num" select="." />
> <li>Order: <xsl:value-of select="$num" /></li>
> <xsl:for-each select="/root/opt[@attr=$num]">
> <li>Value: <xsl:value-of select="." /></li>
> </xsl:for-each>
> </xsl:for-each>
> </ul>
> <ol>
> <xsl:for-each select="/root/opt">
> <li>XML: <xsl:value-of select="." /></li>
> </xsl:for-each>
> </ol>
> </body>
> </html>
> </xsl:template>
> </xsl:stylesheet>
> XML:
> <root>
> <opt attr="1">a</opt>
> <opt attr="2">b</opt>
> <opt attr="3">c</opt>
> <opt attr="4">d</opt>
> </root>
> Expected:
> <xsl:for-each select="/root/opt[@attr=$num]">
> return element from XML
> Acutal:
> <xsl:for-each select="/root/opt[@attr=$num]">
> has context in document('') and return nothing
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org