代码之家  ›  专栏  ›  技术社区  ›  Spike Williams

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

  •  0
  • Spike Williams  · 技术社区  · 15 年前

    例如,我试图从以下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 回复  |  直到 15 年前
        1
  •  2
  •   marc_s HarisH Sharma    15 年前

    我会说是的,你应该走对了。我似乎找不到任何样本来验证和确认这一点-但你应该没有问题尝试和验证这一点。

    我说:去吧!

    看起来您需要稍微调整一下XSL:

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

    使用此选项(删除@locale后面的空格,将值放在“…”中)一切都应该很好。

    马克