如何根据属性值在XSLT中获取值?

时间:2016-05-25 22:36:14

标签: xml xslt

我知道XSLT中的冒号用作命名空间,但是我遇到冒号的非命名空间问题。

基本上,我需要获取具有带冒号的属性名称的字段的值。

示例:

<root>
    <Name name="Attn:">whatever</Name>
    <Name name="somethingelse">something</Name>
</root>

我希望能够使用&#34; Attn:&#34;准确选择名称。属性所以我可以改变它,所以:

<root>
   <AttentionName>Whatever</AttentionName>
   <Name>something</Name>
<root>

尝试过:

<AttentionName>
    <xsl:value-of select="root/Name/@Attn:"/>
</AttentionName>

但它错误地指出冒号不能在选择值中。

1 个答案:

答案 0 :(得分:2)

属性 name name)不包含冒号; Attn:的属性 value @name)包含冒号。

您可以按如下方式调整XPath,以获取Name属性等于@name

Attn:元素的字符串值
<AttentionName>
    <xsl:value-of select="/root/Name[@name='Attn:']"/>
</AttentionName>