比实际需要更多的参考:当在其他地方使用相同的元素名称时XPath
,允许我引用块中的元素的语法是什么?xsl:for-each
请注意,很遗憾,这必须是 1.0 解决方案
例如,我有以下简单的 XML,我想匹配具有相同id
值的项目...
<data>
<block1>
<item><id>1</id><text>Hello</text></item>
<item><id>2</id><text>World</text></item>
</block1>
<block2>
<item><id>1</id><text>123</text></item>
<item><id>2</id><text>ABC</text></item>
</block2>
</data>
如果我有 a for-each
on the block1
,我如何同时引用 inside id
theblock1
和id
within the block2
?
这会起作用,但我认为它很混乱......
<xsl:for-each select="//block1/item">
<xsl:variable name="id" select="id"/>
<xsl:value-of select="text"/> - <xsl:value-of select="//block2/item[id=$id]/text"/>
</xsl:for-each>
结果...
Hello - 123
World - ABC
是否有一种简化的方法来替换$id
inselect="//block2/item[id=$id]/text"
以便它引用id
来自 的元素for-each
?