首先 - 抱歉我的英语不好。
我需要将lang属性添加到html open标签中依赖哪些语言在网站上选择。 它现在看起来如何:
<xsl:template match="root">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>
<xsl:choose>
<xsl:when test="Document/@title!=''">
<xsl:value-of select="Document/@title" disable-output-escaping="yes"/>
</xsl:when>
<xsl:when test="ContentList/@title!=''">
<xsl:value-of select="ContentList/@title" disable-output-escaping="yes"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@ContentHeader" disable-output-escaping="yes"/>- <xsl:value-of select="@title" disable-output-escaping="yes"/> - <xsl:value-of select="@slogan" disable-output-escaping="yes"/></xsl:otherwise>
</xsl:choose>
我试着做出这个条件
<xsl:choose>
<xsl:when test="@lang='rus'">
<html lang="ru">
</xsl:when>
<xsl:when test="@lang='rom'">
<html lang="ro">
</xsl:when>
<xsl:otherwise>
<html lang="en">
</xsl:otherwise>
</xsl:choose>
但它不起作用。
答案 0 :(得分:0)
XSLT样式表必须是格式良好的XML文档。这意味着元素必须正确嵌套,您的示例违反了三个开始标记而没有匹配结束标记。考虑生成结构,而不是标签。
从原始样式表开始(有其他问题,但我现在不想对它们进行狡辩),简单的解决方案是只使属性成为条件:
<html>
<xsl:choose>
<xsl:when test="@lang='rus'">
<xsl: attribute name="lang"
value="ru"/>
</xsl:when>
<xsl:when test="@lang='rom'">
<xsl: attribute name="lang"
value="ro"/>
</xsl:when>
<xsl: otherwise>
<xsl: attribute name="lang"
value="en"/>
</xsl: otherwise>
</xsl:choose>
<!-- etc... -->
答案 1 :(得分:0)
感谢@keshlam
这是解决方案
diff