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 />"
答案 0 :(得分:21)
我认为你需要的电话是:
$result = $xpath->query('//title[contains(.,"Site")]');
请注意,这是区分大小写的。
请注意,contains
XPath函数有两个参数:haystack和needle。在这种情况下,我们使用当前节点的文本值作为haystack,使用点(.
)表示。