gpt4 book ai didi

php - 如何计算 DOMDocument 中的所有节点

转载 作者:行者123 更新时间:2023-12-01 22:04:18 25 4
gpt4 key购买 nike

使用 PHP 7.1,我想计算此字符串的根中的节点数:

<p>Lorem</p>
<p>Ipsum</p>
<div>Dolores</div>
<b>Amet</b>

使用以下 PHP:

$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->loadHTML($content);
$root = $dom->documentElement;
$children = $root->childNodes;
var_dump($children)

返回:

object(DOMNodeList)#4 (1) {
["length"]=>
int(1)
}

我不明白为什么 HTML 字符串只返回 1 个节点。此外,我无法遍历节点。

最佳答案

在与@bart 进行愉快的交谈后,我们找到了解决方案。

$content = " 
<p>Lorem</p>
<p>Ipsum</p>
<div>Dolores</div>
<b>Amet</b>
";

$dom = new DOMDocument;
$dom->loadHTML($content);
$allElements = $dom->getElementsByTagName('*');
echo $allElements->length;

echo "<br />";

$node = array();
foreach($allElements as $element) {
if(array_key_exists($element->tagName, $node)) {
$node[$element->tagName] += 1;
} else {
$node[$element->tagName] = 1;
}
}
print_r($node);

ps:默认添加html和body标签,结果加2。

关于php - 如何计算 DOMDocument 中的所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52730551/

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