gpt4 book ai didi

php - 从 HTML ysubg DOMDocument 获取特定 ID 内的第二个 p 标签

转载 作者:搜寻专家 更新时间:2023-10-31 20:41:05 25 4
gpt4 key购买 nike

如何从第二个 <p> 获取内容在 ID 为 mydiv 的 div 中标记使用 DOMDocument?

例如,我的 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.

关于php - 从 HTML ysubg DOMDocument 获取特定 ID 内的第二个 p 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21430682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com