我必须在xsl-1.0中比较两个包含单引号的字符串,但是当我测试它们时,它永远不会起作用。我试过
<xsl:if test="/name= 'start of string d' 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 转义。
因此,如果属性分隔符"
,则可以将其转义为"
,而如果属性分隔符'
,则可以
'
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 表达式中的变量代替字符串文本。