我正在为学校创建一个在线商店的工作。有一个页面,管理员可以更新项目库存和/或放置待售物品。每次商品在销售或从销售中取消时,都会调用一个函数来更新带有最新销售商品的RSS Feed。
这是RSS XML结构:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Project2 RSS Feed</title>
<language>en-us</language>
<link>http://people.rit.edu/~cns3946/539/project2/project2.rss</link>
<description>Project 2 RSS Feed</description>
<item>
<title>Far Cry 3</title>
<link>http://people.rit.edu/cns3946/539/project2/index.php?item_num=3</link>
<description>
<![CDATA[a boring description goes here....]]></description>
<price>59.99</price>
<salePrice>49.99</salePrice>
<pubDate>Sun, 03 Feb 2013 01:20:04 -0500</pubDate>
</item>
<item>
<title>Tales of the Abyss 3DS</title>
<link>http://people.rit.edu/cns3946/539/project2/index.php?item_num=13</link>
<description><![CDATA[a boring description goes here....]]></description>
<price>39.99</price>
<salePrice>29.99</salePrice>
<pubDate>Sun, 03 Feb 2013 01:20:04 -0500</pubDate>
</item>
<item>
<title>Resistance: Fall of Man</title>
<link>http://people.rit.edu/cns3946/539/project2/index.php?item_num=17</link>
<description><![CDATA[a boring description goes here....]]></description>
<price>19.99</price>
<salePrice>9.99</salePrice>
<pubDate>Sun, 03 Feb 2013 01:20:04 -0500</pubDate>
</item>
</channel>
</rss>
每次调用该函数时,它都会附加到该文件中。我希望能够删除所有节点,然后将新的销售项目附加到文件中。我已经尝试过使用removeChild而无法理解它。如果您对如何使这项工作有任何提示或指示,您能告诉我吗?任何帮助,将不胜感激。
答案 0 :(得分:0)
这样的事情应该有效:
$dom = new DOMDocument;
$dom->load('your_file_name.xml');
//loop thru each item node
foreach ($dom->getElementsByTagName('item') as $item) {
//remove the item node
$item->parentNode->removeChild($item);
}
echo $dom->saveXml();
答案 1 :(得分:0)
$items = $domdocument->getElementsByTagName("item");
while($items->length > 0)
$items->item(0)->parentNode->removeChild($items->item(0));
答案 2 :(得分:0)
你可以像这样使用preg_replace,但它可以用于字符串
$str=preg_replace("~<item(.*?)>(.*?)</item>~si",""," ".$str." ");
删除字符串
中的所有项目