xpath用法详解扩展篇

阅读28 评论0
接着上一篇《xpath在PHP中的应用,采集爬取HTML代码并匹配节点内容》继续探索xpath。在上一篇中基本的了解了xpath的使用,现在来加深下。还是用上一篇的HTML吧,这里就不重复写了,不太明白的小伙伴麻烦移步到上一篇看一下哈。一、获取所有div[class='item']中的P元素内容$list = $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 位网友评论:

欢迎 来评论

请填写验证码