【发布时间】:2010-08-26 15:41:00
【问题描述】:
我的 xpath 语句有问题。
基本上可以用以下代码解释问题:
<xsl:for-each select="/b1im:B1IMessage/b1im:Header/b1im:Z/SortInbound/group">
<!-- Check if entry from duplicate table is found for the current AccountingEntry -->
<xsl:variable name="externalId" select="../externalId"></xsl:variable>
<xsl:value-of select="/b1im:B1IMessage/b1im:Body/b1im:Payload[@ObjectRole='CA']/jdbc:SqlResult/jdbc:ResultSet/jdbc:Row[jdbc:external_id= /../externalId]/jdbc:external_id"></xsl:value-of>
<xsl:variable name="group" select="./@id"></xsl:variable>
<!-- if it is no dupe => output -->
<xsl:choose>
<xsl:when test="/b1im:B1IMessage/b1im:Body/b1im:Payload[@ObjectRole='CA']/jdbc:SqlResult/jdbc:ResultSet/jdbc:Row[jdbc:external_id = ../externalId]/jdbc:external_id">
我想要做的是,使用“../externalId”的值(for-each 的上下文)进行测试(最后一行)。如果我使用变量($externalId),它会起作用,但是该变量仅设置一次(第一次循环迭代)... 有没有办法我可以访问 xpath-expression 中的 for-each-context?
提前致谢!! 托比亚斯
【问题讨论】:
-
添加
xslt标签,因为此 XPath 表达式由 XSLT 托管