我使用xerces使用两个xsl文件处理xml,并在我的xsl:for-each循环中得到错误的结果,
for循环返回8结果而不是4结果
如何调试此错误?
谢谢你的帮助!
xml:
<Updates>
<update_record displayTimestamp="2013-03-08 11:44:00">
<user>MNM3322</user>
</update_record>
<update_record displayTimestamp="2013-03-08 11:45:00">
<user>MNM3323</user>
</update_record>
<update_record displayTimestamp="2013-03-08 11:46:00">
<user>MNM3322</user>
</update_record>
<update_record displayTimestamp="2013-03-08 11:47:00">
<user>MNM3325</user>
</update_record>
<LatestUpdate/>
</Updates>
first.xsl
<xsl:variable name="updates" select="//Updates"/>
second.xsl
<xsl:variable name="updatesCount"
select="count($updates/update_record)"/>
<xsl:include href="first.xsl"/>
<xsl:value-of select="$updatesCount"/> this gives correct result (4)
<xsl:for-each select="$updates/update_record"> this gives incorrect output (8 rows instead of 4)
<xsl:value-of select="position()"/>
</xsl:for-each>
答案 0 :(得分:0)
发现了这个问题。它的XALAN Bug
见这里:
如果在全局变量中使用递归模板,则循环变量/参数引用
https://issues.apache.org/jira/browse/XALANJ-2430
谢谢!