简介
DOMDocument 是一个 PHP 类,提供了一种便捷的解析方法以及操作 HTML 文档。然而,当尝试在提取内容时保留 HTML 标签时,用户可能会遇到困难。本文深入探讨了 DOM 的基本概念,并提出了应对这一挑战的解决方案。
理解 DOM 和节点
DOMDocument 将 HTML 文档表示为节点的分层树。每个节点可以有子节点,形成复杂的结构。认识到 HTML 元素及其属性和文本内容都表示为 DOMDocument 中的节点至关重要。
解决标签保留问题
提供的代码成功获取具有“showContent”id 的 DIV 节点。但是,它仅检索 DIV 中的文本内容,不包括 HTML 标记本身。这是因为代码使用了$tag->nodeValue,它只提取文本而不是实际的节点。
解决方案:遍历节点
要保留 HTML 节点,您需要遍历目标节点的子节点。下面的代码展示了这种方法:
$dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $tags = $xpath->query('.//div[@id="showContent"]'); foreach ($tags as $tag) { echo $dom->saveXML($tag); echo '
'; }
从 HTML 中检索特定信息
如果您需要来自 HTML 文档的特定信息(例如表中的链接),您可以修改 XPath 查询以选择适当的节点。例如:
foreach ($div->getElementsByTagName('a') as $link) { echo $dom->saveXML($link); }
其他资源
有关使用 DOMDocument 的更多帮助,请参阅以下资源:
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3