You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Henry Zongaro (JIRA)" <xa...@xml.apache.org> on 2007/04/18 15:13:15 UTC

[jira] Commented: (XALANJ-2380) dyn:evaluate gives no result the second time it is called. When using a variable with no rtf. It is working in version 2.6.0

    [ https://issues.apache.org/jira/browse/XALANJ-2380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489714 ] 

Henry Zongaro commented on XALANJ-2380:
---------------------------------------

I get an error like the following with every release of Xalan-J that tried (from Xalan-J 2.4.0 onwards).  I'm not sure how you got it to work with Xalan-J 2.6.0

file:///d:/henry/defects/j2380/j2380.xsl; Line #15; Column #76; XSLT Error (javax.xml.transform.TransformerException): org.apache.xpath.objects.XRTreeFrag

That's not a very descriptive message, but what it's trying to say is that you're trying to apply an operation to a result-tree fragment that's not
permitted.  Section 11.1 of XSLT 1.0 [1] says, "In particular, it is not permitted to use the /, //, and [] operators on result tree fragments."

That's such a common requirement for users, though, that most XSLT processors support the node-set extension function.  There is an EXSLT namespace defined for it, so you can write:

<xsl:stylesheet exclude-result-prefixes="dyn" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dyn="http://exslt.org/dynamic" xmlns:exsl="http://exslt.org/common">
  ...
  <xsl:value-of select="dyn:evaluate('exsl:node-set($employees)/employee/name/last/text()')"/>

I hope that helps.

[1] http://www.w3.org/TR/xslt#section-Result-Tree-Fragments

> dyn:evaluate gives no result the second time it is called. When using a variable with no rtf. It is working in version 2.6.0
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: XALANJ-2380
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2380
>             Project: XalanJ2
>          Issue Type: Bug
>         Environment: Windows XP, JDK 1.6.0
>            Reporter: Kenneth Reistad
>            Priority: Critical
>             Fix For: The Latest Development Code
>
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsl:stylesheet exclude-result-prefixes="dyn" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dyn="http://exslt.org/dynamic">
> 	<xsl:output encoding="ISO-8859-1" indent="yes" method="xml" omit-xml-declaration="no" version="1.0"/>
> 	<xsl:template match="/">
> 		<root>
> 			<xsl:variable name="employees">
> 				<employee>
> 					<name>
> 						<first>Firstname0</first>
> 						<last>Lastname0</last>
> 					</name>
> 				</employee>
> 			</xsl:variable>
> 			
> 			<xsl:variable name="employee" select="$employees/employee"/>
> 			
> 			<xsl:value-of select="dyn:evaluate('$employees/employee/name/last/text()')"/>|
> 			<xsl:value-of select="dyn:evaluate('$employees/employee/name/last/text()')"/>|
> 			<xsl:value-of select="dyn:evaluate('$employees/employee/name/last/text()')"/>|
> 			***
> 			<xsl:value-of select="dyn:evaluate('$employee/name/last/text()')"/>|
> 			<xsl:value-of select="dyn:evaluate('$employee/name/last/text()')"/>|
> 			<xsl:value-of select="dyn:evaluate('$employee/name/last/text()')"/>|
> 		</root>
> 	</xsl:template>
> </xsl:stylesheet>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org