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

时间:2014-07-01 09:25:03

标签: php xml dom search xpath

我使用以下Xpath来搜索关键字,但是当我在$search中使用“@”时,查询无效。

 $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'];
   }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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

这样,PHP变量的字符串值就像foo@example.com一样,XPath表达式将是//*[contains(text(), 'foo@example.com')]