如何使用计算名称访问属性

时间:2015-06-25 16:13:27

标签: xml xslt

我想使用变量来读取属性值来计算其名称:

<xsl:variable name="TopMan">
    <xsl:for-each select="//ALL_RESOURCES/*/*/*">
        <xsl:if test="contains(@Name,'Chan' )">
            <xsl:variable name="element_name" select="name(..)"/>
            <xsl:variable name="FChanSub" select="(//ALL_RESOURCES/*/*[$element_name = name()]/@UsedEle)"/>
            <xsl:value-of select="(//ALL_RESOURCES/*[(substring-before($element_name, '_')) = name()]/@[(concat('NEIBR_', $FChanSub)) = name()])"/>     
        </xsl:if>
    </xsl:for-each>
</xsl:variable>

第6行有问题。读数值是否正确。基本上,我有一个结构NEIBR_HM1,NEIBR_NR等。我想读取NEIBR_(HM1或NR)中的值。

1 个答案:

答案 0 :(得分:0)

如果没有看到您的输入或预期输出,我无法100%确定,但我认为您非常接近:只需更改

@[(concat('NEIBR_', $FChanSub)) = name()]

@*[(concat('NEIBR_', $FChanSub)) = name()]