xpath用法详解扩展篇
接着上一篇《xpath在PHP中的应用,采集爬取HTML代码并匹配节点内容》继续探索xpath。
在上一篇中基本的了解了xpath的使用,现在来加深下。
还是用上一篇的HTML吧,这里就不重复写了,不太明白的小伙伴麻烦移步到上一篇看一下哈。
一、获取所有div[class='item']中的P元素内容
$list = $xpath->evaluate("/html/body/div[@class='item']/p");
二、获取第一个div[class='item']中的P元素内容
$list = $xpath->evaluate("/html/body/div[@class='item'][1]/p");
三、获取最后一个div[class='item']中的P元素内容
$list = $xpath->evaluate("/html/body/div[@class='item'][last()]/p");
四、获取所有div[class='item']中的P元素内容和H3(HTML代码中没有这个,就当有吧)
$list = $xpath->evaluate("/html/body/div[@class='item']/p | /html/body/div[@class='item']/h3");
五、嵌套使用xpath获取子内容
$list = $xpath->evaluate("/html/body//div[@class='item']"); foreach($list as $item){ $p=$xpath->evaluate(".//p",$item); $text=$p->textContent; $attr=$p->getAttribute('title');//获取节点的属性值 $html=$htmlDom->saveHTML($item);//获取节点的HTML代码 }
附:
【xpath教程-W3C】https://www.w3school.com.cn/xpath/index.asp
【DOMDocument手册】https://www.php.net/manual/en/class.domelement.php
有 0 位网友评论: