我在元描述 HTML 标记中设置了一个带有“meta_words”命名空间的 XSLT 变量“描述”。
你有解决办法吗?
这是代码错误
<meta name="description" content="<xsl:value-of match="meta_words" select="$description" />" />
这是代码错误
<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"/>