3

我有一个 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 中 MyField 的,而不是文字文本“MyField”。

怎么可能呢?

谢谢!

4

1 回答 1

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

将返回名称与$MyAttributeValue.

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

<xsl:value-of select="*[name() = $MyAttributeValue]" />
于 2009-03-24T17:26:08.870 回答