XSLT ist in der Version 1.0 verfügbar.
Ich arbeite an einer zweisprachigen Website in einem XML-basierten CMS (Symphony CMS) und muss die englische Version eines Kategorienamens durch die französische Version ersetzen.
Dies ist meine XML-Quelle.
<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>
Dies ist ein Teil der XSLT, die ich derzeit für die französische Version habe.
<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>
Das Problem: Der sichtbare Text des Ankers ( <xsl:value-of select="."/>
) gibt die englische Version des Kategorietitels an.
Die Handles der folgenden Knoten stimmen überein (alle Handles sind in englischer Sprache), so dass ich denke, dass ich in der Lage sein sollte, den einen mit dem anderen abzugleichen.
/data/our-news-categories-for-list-fr/entry/title-fr/@handle
(der Wert des Knotens title-fr ist die französische Übersetzung des Titels der Kategorie)
/data/our-news-article-fr/entry/categories/item/@handle
Ich bin neu in XSLT und kämpfe damit, herauszufinden, wie man das macht.
Vielen Dank!