Php XPath查询无法使用特殊字符正常工作
我使用下面的Xpath搜索关键字,但当我在$search中使用@in时,查询不起作用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
$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]的操作