可用的XSLT是1.0。匹配不同的節點句柄以使用XSLT獲取節點值
我正在基於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>
問題:錨(<xsl:value-of select="."/>
)的可見文本給出了類標題的英文版本。
以下節點的句柄匹配(所有的句柄都是英文的),所以我想我應該能夠匹配另一個。
/data/our-news-categories-for-list-fr/entry/title-fr/@handle
(標題-FR節點的值是類別標題的法語翻譯)
/data/our-news-article-fr/entry/categories/item/@handle
我是新來的XSLT和我在努力尋找如何做到這一點。
非常感謝。
<標題-FR手柄=」所需的謂語必須使用
current()
功能針對當前上下文匹配醫療保健「>Santé 不能是有效的標籤? – Mike@ user639175謝謝 - 更正。 –
+1爲好問題。請參閱我的答案,瞭解如何使用簡單的XPath位置路徑執行此操作。 –