php-从HTML ysubg DOMDocument获取特定ID内的第二个p标签
作者:互联网
如何从第二个< p>获取内容使用DOMDocument在ID为mydiv的div中添加标签?
例如,我的HTML可能如下所示:
<div class='mydiv'>
<p><img src='xx.jpg'></p>
<p>i need here</p>
<p>lorem ipsum lorem ipsum</p>
</div>
我正在尝试提取以下文本:
i need here
我该怎么做?
解决方法:
从第n个< p>获取内容.标签:
使用DOMDocument::getElementsByTagName()
获得所有< p>标签,并使用item()
从返回的DOMNodeList中检索第二个标签的节点值:
$index = 2;
$dom = new DOMDocument;
$dom->loadHTML($html);
$tags = $dom->getElementsByTagName('p');
echo $tags->item(($index-1))->nodeValue; // to-do: check if that index exists
从第n个p获取内容.具有给定ID的div中的标签
如果要检索< p>的节点值,标签添加到特定ID中,则可以使用XPath表达式代替getElementsByTagName():
$index = 2;
$id = 'mydiv'
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query(
sprintf('//div[@id="%s"]/p', $id)
);
标签:dom,domdocument,domxpath,php 来源: https://codeday.me/bug/20191122/2057718.html