如何使用XSL针对属性所在的特定节点运行模板?

时间:2009-06-04 19:24:23

标签: xpath xslt

例如,我试图从以下XML中选择值“Application Library” - 即content-node / localedata / title下的值,其中localedata @ locale =“en”。

<content-node objectid="6_NO2UF4I1186E1026H4BLVI08F1">
       <localedata locale="de">
            <title>Anwendungsbibliothek</title>
        </localedata>
        <localedata locale="en">
            <title>Application Library</title>
        </localedata>
        <localedata locale="es">
            <title>Biblioteca de aplicaciones</title>
        </localedata>
</content-node>

具体来说,我在xsl:template @ match值中添加了什么XPath表达式?我认为它应该是这样的,除了我不知道如何匹配硬编码值“en”:

<xsl:template match="localedata[@locale = en]">

我是在正确的轨道上,还是还有其他方法可以解决这个问题?

1 个答案:

答案 0 :(得分:2)

我会说是的,你应该走在正确的轨道上。我似乎无法找到任何样本来验证并确认这一点 - 但是您应该毫不费力地尝试并验证这一点。

我说:去吧!

看起来你必须调整你的XSL一点点:

<xsl:template match="localedata[@locale='en']">

有了这个(删除@locale之后的空格,把值放在'...'中)一切都应该没问题。

马克