$data = simplexml_load_file($source_url);
如果我循环浏览一些看起来像这样的项目
[item] => Array
(
[0] => SimpleXMLElement Object
(
[title] => Justin Bieber and Chance the Rapper Collaborate
[link] => http://feedproxy.google.com/~r/absolutepunknet/~3/vn98Mqyr4_4/showthread.php
[pubDate] => Mon, 09 Dec 2013 07:37:44 GMT
[description] => SimpleXMLElement Object
(
)
[category] => News
[guid] => http://www.absolutepunk.net/showthread.php?t=3576311
)
[1] => SimpleXMLElement Object
(
[title] => SimpleXMLElement Object
(
)
[link] => http://feedproxy.google.com/~r/absolutepunknet/~3/IjS0KtTy8Ws/showthread.php
[pubDate] => Mon, 09 Dec 2013 07:06:56 GMT
[description] => SimpleXMLElement Object
(
)
[category] => News
[guid] => http://www.absolutepunk.net/showthread.php?t=3576281
)
用
foreach ($data->channel->item as $key => $value)
如何访问并可能删除其中一个对象,在此示例中,我想删除 [1] => SimpleXMLElementOjbect
我尝试使用 $key 的值来做到这一点,但这只包含"项目"一词。不太清楚这个。
如果要
从XML元素中删除该项(而不是数组项本身(,可以这样做:
$dom = dom_import_simplexml($element);
$dom->parentNode->removeChild($dom);
对于删除数组项@Dave陈的答案应该有效(我认为仅在 foreach 循环之外(
直接使用 DOMDocument,DOMXpath 查找节点:
$dom = new DOMDocument();
$dom->load($rssFile);
$xpath = new DOMXpath($dom);
//fetch the second item into a list
$items = $xpath->evaluate('/rss/channel/item[2]');
foreach ($items as $item) {
// remove the item from its parent node
$item->parentNode->removeChild($item);
}
echo $dom->saveXml();
在 Xpath 列表中,位置以 1 开头,而不是 0。PHP 中的索引 1 是 Xpath 中的位置 2。