gpt4 book ai didi

php - 删除除第一个 PHP 中的所有列表元素?

转载 作者:可可西里 更新时间:2023-11-01 00:03:47 26 4
gpt4 key购买 nike

如何在 PHP 中删除除第一个元素之外的所有 li 元素?

<div class="category">
<ul class="products">
<li>{nested child elements}</li>
<li>{nested child elements}</li>
<li>{nested child elements}</li>
</ul>
</div>

上面的代码是由另一个脚本通过函数生成的。

结果应该是这样的:

<div class="category">
<ul class="products">
<li>{nested child elements}</li>
</ul>
</div>

更新:对不起大家,“类别”是一个类而不是 ID。

作为对 Yoshi 的返回,ul.products 有 sibling ,但我没有将他们包括在我的帖子中。这会影响查询吗?

这是添加了 Yoshi 的代码后我的代码的样子:

class Myclass {
function prin_html() {
$content = get_code();
$dom = new DOMDocument;
$dom->loadXml($content);

$xpath = new DOMXPath($dom);
foreach ($xpath->query('//li[position()>1]') as $liNode) {
$liNode->parentNode->removeChild($liNode);
}

echo $dom->saveXml($dom->documentElement);
}
}

它仍会打印未过滤的 html 代码...

最佳答案

尝试:

$dom = new DOMDocument;
$dom->loadHtml('<div id="category">
<ul class="products">
<li>{nested child elements}</li>
<li>{nested child elements}</li>
<li>{nested child elements}</li>
</ul>
</div>');

$xpath = new DOMXPath($dom);
foreach ($xpath->query('//li[position()>1]') as $liNode) {
$liNode->parentNode->removeChild($liNode);
}

$output = '';
foreach ($xpath->query('//body/*') as $child) {
$output .= $dom->saveXml($child);
}

输出:

<div id="category">
<ul class="products">
<li>{nested child elements}</li>


</ul>
</div>

关于php - 删除除第一个 PHP 中的所有列表元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438035/

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