我只需要从simpleXML元素中删除一个项目:
unset($this->simpleXML->channel->item[0]);
Run Code Online (Sandbox Code Playgroud)
但我不能用a表示:
$items = $this->simpleXML->xpath('/rss/channel/item');
for($i = count($items); $i > $itemsNumber; $i--) {
unset($items[$i - 1]);
}
Run Code Online (Sandbox Code Playgroud)
一些项目从$ 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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4025 次 |
| 最近记录: |