将文本与XPATH语法匹配

Wyc*_*yck 7 php xml xpath simplexml

Exmple feed:view-source:http://rss.packetstormsecurity.org/files/tags/exploit/

我只想返回xml的部分,其中父标题节点中有匹配的文本,在这个例子中,要匹配的文本是"site".

 //get feed with curl

 $doc = new SimpleXmlElement($xml, LIBXML_NOCDATA);

 //$result = $doc->xpath('//title'); //this works returns all the <title>'s

 $result = $doc->xpath('//title[site]');                     //doesn't work
 $result = $doc->xpath('//title[text()="site"]');           //doesn't work
 $result = $doc->xpath('//title[contains(site)]');           //doesn't work
 $result = $doc->xpath('//title[contains(text(),'Site')]');  //doesn't work


 foreach ($result as $title)
 echo "$title<br />"
Run Code Online (Sandbox Code Playgroud)

lon*_*day 21

我认为你需要的电话是这样的:

$result = $xpath->query('//title[contains(.,"Site")]');
Run Code Online (Sandbox Code Playgroud)

请注意,这是区分大小写的.

请注意,containsXPath函数有两个参数:haystack和needle.在这种情况下,我们使用当前节点的文本值作为haystack,使用dot(.)表示.