DOM从RSS XML中删除子项

时间:2011-08-25 23:08:19

标签: php xml dom rss

希望我能得到一些帮助,PHP不是我的强项,仍在学习绳索......

所以我有一个创建RSS文件的php表单,帮助台工作人员将在内部Intranet上使用RSS源,以及时了解网络中出现的当前问题。

该表单旨在用作管理Feed的前端,我需要做的最后一件事是能够从Feed中删除特定项目。

我想删除具有特定GUID的项目,当表单创建项目时GUID只是使用time()给出一个值,我一直在找我想要删除的项目,我想我需要搜索项目以匹配guid元素然后删除它出现的孩子...有人可以给我一些有用的指针吗?

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <item>
      <title>Exchange Server being rebooted</title>
      <description>Exchange servers are currently being rebooted</description>
      <author>Self</author>
      <link></link>
      <pubDate>Fri, 26 Aug 2011 08:37:12</pubDate>
      <guid>1314311832</guid>
    </item>
  </channel>
</rss>

当我在表单中显示来自RSS的项目时,我将放置一个GUID链接,点击该链接时应该删除该项目。

希望这是有道理的。

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以使用DOMXPath检索GUID元素,并使用removeChild()删除它们:

$xpath    = new DOMXPath($yourDOMDocument);
$query = '//rss/channel/item/guid[boolean(.="1314311832")]';
$entries  = $xpath->query($query);

foreach ($entries as $entry) {
    $entry->parentNode->parentNode->removeChild($entry->parentNode);
}