使用XSLT变量作为字段名称

时间:2009-03-24 17:22:32

标签: xslt variables field

我有一个XSLT变量,我正在创建并填充样式表顶部的属性值,如此...

    <xsl:variable name="MyAttributeValue" select="/Source/Fields/Field[@SpecialAttribute]/@MyAttributeValue" />

稍后在处理中,我想使用$ MyAttributeValue作为字段名称,就像我可以使用硬编码字符串一样。例如:

<xsl:value-of select="MyField"/>

这将在XSLT处理时正确返回XML中的MyField值。我想使用我之前定义的变量来执行此操作。例如:

<xsl:value-of select="$MyAttributeValue"/>

所以,$ MyAttributeValue包含“MyField”,但我希望在使用XML时显示XML中MyField的 而不是文字文本“MyField”变量

怎么办呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

<xsl:value-of select="*[local-name() = $MyAttributeValue]" />

将返回每个子元素节点,其名称等于$MyAttributeValue的内容。

如果您的变量包含名称空间限定名称,例如"foo:MyField",请改用name()函数:

<xsl:value-of select="*[name() = $MyAttributeValue]" />