我只是无法使用以下命令从简单的 XML 元素中删除项目:
unset($this->simpleXML->channel->item[0]);
但我不能使用 a for:
$items = $this->simpleXML->xpath('/rss/channel/item');
for($i = count($items); $i > $itemsNumber; $i--) {
unset($items[$i - 1]);
}
一些项目从 $items 中删除(Netbeans Debug 可以确认这一点),但是当我再次获取路径(/rss/channel/item)时,没有任何内容被删除。
怎么了?
SimpleXML 不处理节点删除,您需要使用 DOMNode 来处理此操作。
令人高兴的是,当您将节点导入 DOMNode 时,这些实例都指向同一棵树。
所以,你可以这样做:
<?php
$items = $this->simpleXML->xpath('/rss/channel/item');
foreach ($items as $item) {
$node = dom_import_simplexml($item);
$node->parentNode->removeChild($node);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)