Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php XPath查询无法使用特殊字符正常工作_Php_Xml_Dom_Search_Xpath - Fatal编程技术网

Php XPath查询无法使用特殊字符正常工作

Php XPath查询无法使用特殊字符正常工作,php,xml,dom,search,xpath,Php,Xml,Dom,Search,Xpath,我使用下面的Xpath搜索关键字,但当我在$search中使用@in时,查询不起作用 $findword= 'Find @ replace'; $dom = new DOMDocument(); preg_match("/$findword/i", $findResultRow['Description'],$matches); $dom->loadHtml(mb_convert_encoding(strtolower($findResultRow['Descri

我使用下面的Xpath搜索关键字,但当我在$search中使用@in时,查询不起作用

 $findword= 'Find @ replace';
    $dom = new DOMDocument();
    preg_match("/$findword/i", $findResultRow['Description'],$matches);
    $dom->loadHtml(mb_convert_encoding(strtolower($findResultRow['Description']), 'HTML-ENTITIES', "UTF-8"));
    $xpath = new DOMXPath($dom);
    $search = strtolower($findword);
    foreach($xpath->query("(//*[contains(text(), $search)])[1]") as $node)
    {
    $desc=$findResultRow['Description'];
   }

我做错了什么?

如果要搜索文本字符串,则需要

foreach($xpath->query("(//*[contains(text(), '$search')])[1]") as $node)

这样,PHP变量有一个字符串值,如foo@example.comXPath表达式将是/*[containstext,'foo@example.com”。

这不应该是个问题。您能提供您的XML数据吗?然而,您传递搜索值的方式看起来很奇怪,我希望您在PHP中执行类似于$xpath->query/*[containstext,.$search.][1]的操作