gpt4 book ai didi

php - DOM php按标签名称删除所有标签

转载 作者:行者123 更新时间:2023-12-02 23:46:04 24 4
gpt4 key购买 nike

我在使用一段时间的脚本时遇到了问题,它一直对我有用,直到我遇到这个问题。

我有一个脚本,我想用它从 html 源代码中删除所有 p html 标签。该脚本确实可以部分工作,因为它只删除了一些 p 标记,但留下了一些。

我不明白为什么要这样做。

$doc = new DOMDocument();

$a = <<<FAIL
<html><body>
<div style="clear:both"></div>
<p class="articletitle">hoo</p>
<p class="articletext">hmmm</p>
<p class="articletext">hmmmm</p>
<p align="center"></p>
</body></html>
FAIL;

$doc->loadHTML($a);
$list = $doc->getElementsByTagName("p");

foreach ($list as $l) {
$l->parentNode->removeChild($l);
$c++;
}
echo $doc->saveHTML() . $c;

脚本返回

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<div style="clear:both"></div>

<p class="articletext">hmmm</p>

<p align="center"></p>

省略两个 p 标签...

你能帮我找出为什么它会跳过一些标签

最佳答案

试试这个方法:

$doc->loadHTML($a);
$list = $doc->getElementsByTagName("p");

while ($list->length > 0) {
$p = $list->item(0);
$p->parentNode->removeChild($p);
}

关于php - DOM php按标签名称删除所有标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16445352/

24 4 0