我有一个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”变量
怎么办呢?
谢谢!
答案 0 :(得分:1)
<xsl:value-of select="*[local-name() = $MyAttributeValue]" />
将返回每个子元素节点,其名称等于$MyAttributeValue
的内容。
如果您的变量包含名称空间限定名称,例如"foo:MyField"
,请改用name()
函数:
<xsl:value-of select="*[name() = $MyAttributeValue]" />