我正在尝试使用 XSLT 在我的 Umbraco 网站(NL、ENG)上显示语言标志。我的 XSLT 仅在页面现在与另一个页面有关系时显示标志,但我也想在与另一个页面没有关系时显示标志(此标志需要导航到所选语言的索引页面) .
我的想法是使用变量,但我不知道你不能用 XSLT 改变这些(XSLT 有点新)。
我的问题是:即使页面没有关系,是否有办法始终显示 NL ENG 标志。
这是我的 XSLT 代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library"
exclude-result-prefixes="msxml umbraco.library">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="currentPage" />
<xsl:template match="/">
<xsl:variable name="smallCase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="upperCase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<ul>
<xsl:for-each select="$currentPage/../../*">
<xsl:variable name="relations" select="umbraco.library:GetRelatedNodesAsXml($currentPage/@id)//relation [@parentId = $currentPage/@id]"/>
<xsl:variable name="nodeName" select="translate(@nodeName, $upperCase, $smallCase)" />
<xsl:for-each select="$relations">
<xsl:value-of select='@nodeName' />
<xsl:variable name="url" select="umbraco.library:NiceUrl(@childId)" />
<xsl:if test="contains($url, $nodeName)">
<li><a href="{$url}" class="{$nodeName}"><xsl:value-of select='$nodeName' /></a></li>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
我的三个结构看起来像这样(其中 Startpagina 与 Home 有关系,而 Algemeen 与 General 有关系: