如何在XML中使用XPATH搜索带有撇号引号的字符串


How to search string with apostrophe quote with XPATH in XML?

我有以下XML

$xml = <<<XML
<books>
 <book>
  <title>PHP Basic's</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>
XML;

并遵循PHP代码

$xml = simplexml_load_string($xml);
$books = $xml->xpath("//book[contains(title,'Basic's')]");

问题是:如何搜索带有撇号引号的字符串?我尝试使用类似的任何一个,试图用单 (') 和双 (") 引号引用整个 XPATH 表达式,但无法创建正确的 XPATH 表达式。谁能帮我?

您可以使用

"切换'并在Basic's中转义撇号:

$books = $xml->xpath('//book[contains(title,"Basic''s")]');

代码板示例