如何比较 xsl 中包含单引号 ( ' ) 的两个字符串



我必须在xsl-1.0中比较两个包含单引号的字符串,但是当我测试它们时,它永远不会起作用。我试过

<xsl:if test="/name= 'start of string d&apos; end of string'">
<xsl:if test="/name= 'start of string ' end of string'">

但是在这些情况下,我收到一个错误,告诉我字符串的结尾是意外的

以及通过单引号更改引号

    <xsl:if test='/name= "start of string ' end of string"'>

构建但测试返回 false,即使它显然应该返回 true。

我做错了什么?

对用作 XML 属性分隔符的字符使用 XML 转义,对用作 XPath 字符串分隔符的字符使用 XPath 转义。

因此,如果属性分隔符",则可以将其转义为&quot;,而如果属性分隔符',则可以

将其转义为&apos;XPath

转义仅存在于 XPath 2.0 中。如果字符串分隔符",则可以将其转义为"",而如果',则可以将其转义为''

在 XPath 1.0 中,这给您留下了一个问题。解决它的方法是将变量绑定到引号上

<xsl:variable name="quot">"</xsl:variable>
<xsl:variable name="apos">'</xsl:variable>

或实际的字符串文本

<xsl:variable name="s">He said "Please don't jump"</xsl:variable>

然后使用 XPath 表达式中的变量代替字符串文本。

相关内容

  • 没有找到相关文章

最新更新