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 2009/12/15 15:37:18 UTC

[jira] Commented: (XALANJ-2507) dyn:evaluate() not working correctly when RTF is passed

    [ https://issues.apache.org/jira/browse/XALANJ-2507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790758#action_12790758 ] 

Henry Zongaro commented on XALANJ-2507:
---------------------------------------

It looks like only the first use of a particular variable instance inside of dyn:evaluate is working - so in your example, $Member/dev returns the correct result, but it looks like the second and third references to each particular instance of $Member return empty node sets.

In your simple example, it would be possible to work around the problem so that it doesn't use the dyn:evaluate function at all:

<xsl:for-each select="member">
<xsl:variable name="Member" select="."/>
<tr>
<td><xsl:value-of select="name"/></td>
<xsl:for-each select="../RoleTypes/*">
<xsl:variable name="roleName" select="name(.)"/>
<td><p/><xsl:value-of select="$Member/*[name(.) = $roleName"/></td>
</xsl:for-each>
</tr>
</xsl:for-each>

Of course, that might not work in your particular stylesheet, if your usage of dyn:evaluate is more complex.

> dyn:evaluate() not working correctly when RTF is passed
> -------------------------------------------------------
>
>                 Key: XALANJ-2507
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2507
>             Project: XalanJ2
>          Issue Type: Bug
>      Security Level: No security risk; visible to anyone(Ordinary problems in Xalan projects.  Anybody can view the issue.) 
>    Affects Versions: 2.7.1
>         Environment: WindowsXP with cygwin, Java version: "1.6.0_15", xalan-j: 2.7.1
>            Reporter: Krishna
>
> When dyn:evaluate is used to process a node, something goes wrong when xalan-j
> processor is used.  The same stylesheet works fine with other processors (i.e.
> xsltproc, saxon6 etc).
> The xsl segment that causes trouble is:
> <xsl:for-each select="member">
> 	<xsl:variable name="Member" select="."/>
> 	<tr>
> 	<td><xsl:value-of select="name"/></td>
> 	<xsl:for-each select="../RoleTypes/*">
> ==>		<td><p/><xsl:value-of select="dyn:evaluate(concat('$Member/', name(.)))"/></td>
> 	</xsl:for-each>
> 	</tr>
> </xsl:for-each>
> The idea is to display data under <dev>, <qa>, and <doc> in tabular form like
> name |  dev |  qa | doc |
> -------------------------------
> John   |  200 |      |         |
> Paul   |  100 |       |         |
> Max    |           | 60 |         |
> But, when I use xalan-j, only the data pertaining to the first element under RoleTypes
> (i.e. <dev> in this case) gets displayed, rest of the columns are blank.  I'm not that
> comfortable with java to see where the problem is in the source code.  Just thought
> I'd pass on this info.
> Input XML content is:
> <projectteam>
>   <RoleTypes>
> 	  <dev/>
> 	  <qa/>
> 	  <doc/>
>   </RoleTypes>
>   <member>
>     <name>John</name>
>     <dev>200</dev>
>   </member>
>   <member>
>     <name>Paul</name>
>     <dev>100</dev>
>   </member>
>   <member>
>     <name>Max</name>
>     <qa>60</qa>
>   </member>
>   ...
> Thanks

-- 
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