2

如何断言要断言的字符串中包含单引号的 xpath 匹配?

This is my string with value '40' to be asserted.

我假设用转义单引号字符,\'但这不起作用。

matches( //faultstring[1]/text(), 'This is my string with value \'40\' to be asserted.' )

这是如何正确完成的?

4

2 回答 2

1

我对这个问题的理解是,如果 XPath 表达式在 XML 文档中,则该问题是由于需要使用嵌套引号引起的。

如果是这种情况,可以使用这个 XPath 表达式:

$yourString = "This is my string with value '40' to be asserted."

基于 XSLT 的验证

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>

 <xsl:template match="/">
     <xsl:copy-of select=
     "/* = &quot;This is my string with value &apos;40&apos; to be asserted.&quot;"/>
 </xsl:template>
</xsl:stylesheet>

当此转换应用于以下 XML 文档时:

<t>This is my string with value '40' to be asserted.</t>

对 XPath 表达式求值,并将该求值的结果复制到输出中:

true
于 2012-09-19T12:35:03.370 回答
1

尝试这个

//faultstring[matches(text(),'&#x0027;')]

或者

//faultstring[matches(text(),'&apos;')]

或者

//faultstring[matches(text(),'&#39;')]

有关更优雅的解决方案,请参阅此帖子

于 2012-09-19T09:12:23.153 回答