我有一个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技巧强制元素忽略内联样式的方法?
答案 0 :(得分:2)
您似乎试图通过使用反斜杠转义它们来在引号分隔的XPath字符串文字中包含引号。这不起作用。
在XPath 1.0(XSLT 1)中,没有很好的方法可以做到这一点。您可能需要采用一些技巧,例如定义一个包含单引号字符的变量,并使用concat
函数创建字符串:
<xsl:variable name='quot' select="'"'"/>
<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"/>