gpt4 book ai didi

xslt - 使用 XSLT 匹配不同的节点句柄以获取节点值

转载 作者:行者123 更新时间:2023-12-04 06:21:26 24 4
gpt4 key购买 nike

可用的 XSLT 是 1.0。

我正在基于 XML 的 CMS(Symphony CMS)中的双语言站点上工作,并且需要将类别名称的英文版本替换为法语版本。

这是我的源 XML。

<data>
<our-news-categories-for-list-fr>
<entry id="118">
<title-fr handle="technology">Technologie</title-fr>
</entry>
<entry id="117">
<title-fr handle="healthcare">Santé</title-fr>
</entry>
</our-news-categories-for-list-fr>
<our-news-article-fr>
<entry id="100">
<categories>
<item id="117" handle="healthcare" section-handle="our-news-categories" section-name="Our News categories">Healthcare</item>
<item id="118" handle="technology" section-handle="our-news-categories" section-name="Our News categories">Technology</item>
</categories>
<main-text-fr mode="formatted"><p>Blah blah</p></main-text-fr>
</entry>
</our-news-article-fr>
</data>

这是我目前用于法语版本的 XSLT 的一部分。
<xsl:template match="data">
<xsl:apply-templates select="our-news-article-fr/entry"/>
</xsl:template>

<xsl:template match="our-news-article-fr/entry">
<xsl:if test="categories/item">
<p class="category">In:</p>
<ul class="category">
<xsl:for-each select="categories/item">
<li><a href="{/data/params/root}/{/data/params/root-page}/our-news/categorie/{@handle}/"><xsl:value-of select="."/></a></li>
</xsl:for-each>
</ul>
</xsl:if>
</xsl:template match>

问题: anchor 的可见文本( <xsl:value-of select="."/> )给出了类别标题的英文版本。

以下节点的句柄匹配(所有句柄都是英文的),所以我想我应该能够匹配一个。
/data/our-news-categories-for-list-fr/entry/title-fr/@handle (title-fr 节点的值是类别标题的法语翻译)
/data/our-news-article-fr/entry/categories/item/@handle
我是 XSLT 的新手,正在努力寻找如何做到这一点。

非常感谢。

最佳答案

添加 <xsl:key name="k1" match="our-news-categories-for-list-fr/entry" use="@id"/>作为 XSLT 样式表元素的子元素。然后使用例如<li><a href="{/data/params/root}/{/data/params/root-page}/our-news/categorie/{@handle}/"><xsl:value-of select="key('k1', @id)/title-fr"/></a></li> .

关于xslt - 使用 XSLT 匹配不同的节点句柄以获取节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com