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

これを試して

//faultstring[matches(text(),''')]

また

//faultstring[matches(text(),''')]

また

//faultstring[matches(text(),''')]

よりエレガントなソリューションについては、この投稿を参照してください

于 2012-09-19T09:12:23.153 に答える
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 に答える