我在元描述HTML标记中设置了一个带有“meta_words”命名空间的XSLT变量“description”。
你有解决方案吗?
这是错误的代码
<meta name="description" content="<xsl:value-of match="meta_words" select="$description" />" />
答案 0 :(得分:3)
这是错误的代码
<meta name="description" content="<xsl:value-of match="meta_words" select="$description" />" />
确实,这是错误的。 xsl:value-of
指令没有match
属性 - 因此不清楚您实际想要做什么以及结果应该是什么样的。
以下是我想要的猜。
使用强>:
<meta name="description" content="{$description}"/>
<强>更新强>:
根据OP发表的评论,似乎有一个名为$meta_words:description
的参数 - 而不是名为$description
的参数/变量。
在这种情况下,必须将上述解决方案修改为:
<meta name="description" content="{$meta_words:description}"/>
并且前缀"meta_words"
的正确名称空间定义必须在范围内(通常将此类名称空间定义放在xsl:stylesheet
元素上)。
这是一个完整的转型:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:meta_words="some:meta_words" exclude-result-prefixes="meta_words">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="meta_words:description" select="'XYZ'"/>
<xsl:template match="/">
<meta name="description" content="{$meta_words:description}"/>
</xsl:template>
</xsl:stylesheet>
当此转换应用于任何XML文档(未用于此演示)时,会生成所需的正确结果:
<meta name="description" content="XYZ"/>