PHP 在 DOMDocument 上保存 HTML

发布于 2024-12-01 17:49:41 字数 491 浏览 1 评论 0原文

$html = <<<HTML
<div class="hey">test</div>
<div id="no">bla</div>
<div class="hey"><b>sa</b> hey<div id="l">b</div></div>  
HTML;

$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$q = '//div[@class="hey"]';
$arr = $xpath->query($q);
foreach($arr as $el) {
    echo $el->nodeValue;
}  

我上面有这段代码,但它没有将 html 保存在“hey”类中。如何将 HTML 保存到 div 中?

$html = <<<HTML
<div class="hey">test</div>
<div id="no">bla</div>
<div class="hey"><b>sa</b> hey<div id="l">b</div></div>  
HTML;

$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$q = '//div[@class="hey"]';
$arr = $xpath->query($q);
foreach($arr as $el) {
    echo $el->nodeValue;
}  

I have this code above, but it doesn't save the html inside the class "hey". How can I save the HTML inside the divs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

反话 2024-12-08 17:49:41

尝试使用 $e1->textContent 而不是 $e1->nodeValue

textContent

该属性返回该节点及其后代的文本内容。

nodeValue

此节点的值,取决于其类型

Try $e1->textContent instead of $e1->nodeValue

textContent

This attribute returns the text content of this node and its descendants.

nodeValue

The value of this node, depending on its type

千年*琉璃梦 2024-12-08 17:49:41

您可以使用 saveXML 或 saveHTML 以及可选的 contextNode 参数(将其设置为 $el)来获取字符串。
该字符串还将包含 div.hey ,通过 RegExp 将其删除。

请注意:saveHTML 从 5.3.6 版本开始支持可选的 contextNode

you may use saveXML or saveHTML with the optional contextNode-argument(set it to $el) to get the string.
This string will also contain div.hey , remove it via RegExp.

Please Note: saveHTML supports the optional contextNode since version 5.3.6

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文