gpt4 book ai didi

php - 如何使用 PHP 的 DOMDocument 获取元素的序列化 HTML?

转载 作者:可可西里 更新时间:2023-10-31 22:59:27 25 4
gpt4 key购买 nike

这是我的示例脚本:

$html = <<<HTML
<div class="main">
<div class="text">
Capture this text 1
</div>
<div class="date">
May 2010
</div>
</div>
<div class="main">
<div class="text">
Capture this text 2
</div>
<div class="date">
June 2010
</div>
</div>
HTML;

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

$xpath = new DOMXPath($dom);


$tags = $xpath->query('//div[@class="main"]');
foreach ($tags as $tag) {
print_r($tag->nodeValue."\n");
}

这将输出:

Capture this text 1 May 2010
Capture this text 2 June 2010

但我需要它输出:

<div class="text">
Capture this text 2
</div>
<div class="date">
June 2010
</div>

或者至少能够在我的 foreach 循环中做这样的事情:

$text = $tag->query('//div[@class="text"]')->nodeValue;
$date = $tag->query('//div[@class="date"]')->nodeValue;

最佳答案

好吧,nodeValue 将为您提供节点的值。您想要通常称为 outerHTML

的东西
echo $dom->saveXml($tag);

将以符合 X(HT)ML 的方式输出您正在寻找的内容。


从 PHP 5.3.6 开始,您还可以将节点传递给 saveHtmlwhich wasnt possible previously:

echo $dom->saveHtml($tag);

后者将遵循 HTML4 语法。感谢Artefacto为此。

关于php - 如何使用 PHP 的 DOMDocument 获取元素的序列化 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3805207/

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