XSLT中的正则表达式

时间:2009-10-02 12:42:34

标签: css xml xslt

我有一个XSLT函数,它将正则表达式作为参数,但XSLT解析器不喜欢它。

以下是代码:

<xsl:value-of select='ns:RegexReplace($variable, "", "style=\"\w+\:\s\w+;\"")' disable-output-escaping='yes' />

我发现了这个: http://www.xml.com/pub/a/2003/06/04/tr.html&lt; - 但它正在使用我现在和似乎工作(对他们而言)。我只是有一个垃圾解析器吗?

有没有办法做到这一点? 或者,通过CSS技巧强制元素忽略内联样式的方法?

2 个答案:

答案 0 :(得分:2)

您似乎试图通过使用反斜杠转义它们来在引号分隔的XPath字符串文字中包含引号。这不起作用。

XPath 1.0(XSLT 1)中,没有很好的方法可以做到这一点。您可能需要采用一些技巧,例如定义一个包含单引号字符的变量,并使用concat函数创建字符串:

<xsl:variable name='quot' select="'&quot;'"/>
<xsl:value-of select='concat("a string with a quote ", $quot, " character")'/>

XPath 2.0(XSLT 2)中,您可以使用另一个引号转义引号:

<xsl:value-of select='"a string with a quote "" character"'/>

答案 1 :(得分:0)

我可能会尝试删除style属性。如果是这种情况,那么字符串替换不会对您有所帮助。

您可以删除样式属性,例如通过编写与其匹配的模板并输出任何内容:

<xsl:template match="@style"/>