【发布时间】:2020-10-09 12:23:28
【问题描述】:
我有一个关于this 问题的变体
给定以下输入 XML
<root>
<zone name="zone1"/>
<zone name="zone2"/>
<device name="foo" zone="zone1"/>
<device name="bar" zone="zone1"/>
</root>
我希望在 XSLT 中计算任何给定区域中有多少设备。
由于我的知识有限,我想出了:
...
<xsl:for-each select="zone">
<tr>
<td><xsl:value-of select="@name"/></td>
<td><xsl:value-of select="count(/root/device[@zone = @name]"/></td>
</tr>
如何在上面的语句中明确说明我想将<device> 元素中的zone 属性与当前<zone> 元素中的name 属性进行比较?
或者有没有更好/更清晰的方法来实现我的最终目标?
【问题讨论】:
-
回答您的问题:您可以使用
[@zone = current()/@name]。但是使用键更优雅也更高效。 -
同意 100%。再次感谢。