编程语言
首页 > 编程语言> > php-从HTML ysubg DOMDocument获取特定ID内的第二个p标签

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)
);

Demo.

标签:dom,domdocument,domxpath,php
来源: https://codeday.me/bug/20191122/2057718.html