首页 > 后端开发 > php教程 > 如何使用 PHP DOMDocument 和 DOMXpath 有效地从 HTML 中提取特定文本?

如何使用 PHP DOMDocument 和 DOMXpath 有效地从 HTML 中提取特定文本?

Susan Sarandon
发布: 2024-10-31 01:18:29
原创
324 人浏览过

How can I efficiently extract specific text from HTML using PHP DOMDocument and DOMXpath?

使用 PHP DOMDocument 解析 HTML

与使用正则表达式相比,利用 PHP 中的 DOMDocument 类提供了一种更高效、更可靠的解析 HTML 的方法。要从 HTML 文档中提取特定文本,DOMXpath 类起着至关重要的作用。

示例:

考虑以下 HTML 字符串:

<code class="html"><div class="main">
    <div class="text">
        Capture this text 1
    </div>
</div>

<div class="main">
    <div class="text">
        Capture this text 2
    </div>
</div></code>
登录后复制

我们的目标是检索文本“Capture this text 1”和“Capture this text 2”。

XPath 查询方法:

而不是依赖 DOMDocument ::getElementsByTagName,它检索具有给定名称的所有标签,XPath 允许我们根据其结构定位特定元素。

<code class="php">$html = <<<HTML
<div class="main">
    <div class="text">
        Capture this text 1
    </div>
</div>

<div class="main">
    <div class="text">
        Capture this text 2
    </div>
</div>
HTML;

$dom = new DOMDocument();
$dom->loadHTML($html);

$xpath = new DOMXPath($dom);</code>
登录后复制

使用 XPath,我们可以执行以下查询:

<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');
foreach ($tags as $tag) {
    var_dump(trim($tag->nodeValue));
}</code>
登录后复制

此查询检索嵌套在类“main”的 div 标签内的所有类为“text”的 div 标签。

输出:

string 'Capture this text 1' (length=19)
string 'Capture this text 2' (length=19)
登录后复制

这展示了使用 PHP 的 DOMDocument 和 DOMXpath 进行准确的 HTML 解析和提取特定内容的有效性。

以上是如何使用 PHP DOMDocument 和 DOMXpath 有效地从 HTML 中提取特定文本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板