0

我在元描述 HTML 标记中设置了一个带有“meta_words”命名空间的 XSLT 变量“描述”。

你有解决办法吗?

这是代码错误

<meta name="description" content="<xsl:value-of match="meta_words" select="$description" />" />
4

1 回答 1

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"/>
于 2012-10-10T12:16:19.537 回答