PHP - 如何从 foreach 循环中的 XML 对象获取密钥编号


$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。

最新更新