子属性选择器中的XSLT for-each的Access属性

时间:2018-02-09 11:04:43

标签: xml xslt

我有以下XSL:

<xsl:for-each select="/ROOT/Matrix">
    <xsl:if test="count(/ROOT/Groups[@MatrixCode=@Code])>0">
    ...
    </xsl:if>
</xsl:for-each>

XML行看起来像这样(它们位于/ ROOT名称空间下):

...
<Matrix Code="7.01.05.02.00.00" />
...
<Groups MatrixCode="7.01.05.02.00.00" />
...

我想测试给定的Matrix实体是否有任何相应的Groups实体。以上似乎不起作用,我认为这是因为@Code的范围在组的选择器内是错误的。

我如何在该位置访问for-each @Code?

1 个答案:

答案 0 :(得分:0)

使用

<xsl:if test="count(../Groups[@MatrixCode = current()/@Code])>0">

而不是

<xsl:if test="count(/ROOT/Groups[@MatrixCode=@Code])>0">

请参阅http://xsltransform.net/93nvfcF

处的转化