Jump to content

Basic Management of RSS Fedd


ToonMariner

Recommended Posts

need some fast help with manipulating xml files.

 

I have an rss feed like so

 

<?xml version="1.0" encoding="iso-8859-1" ?>

<?xml-stylesheet title="XSL_formatting" type="text/xsl" href="/xml/xsl/nolsol.xsl" ?>

<rss version="2.0">
<channel>
	<title>Mysite</title>
	<link>http://www.mysite.co.uk/news</link>
	<feed>http://www.mysite.co.uk/xml/news.xml</feed>
	<description>News from mysite</description>
	<category>Sport</category>
	<copyright>2007 mysite. All rights reserved.</copyright>
	<language>en</language>
	<managingEditor>me@mysite.co.uk</managingEditor>
	<item>
		<title>50 Years and Still Young</title>
		<link>http://www.mysite.co.uk/news/2007/1/1</link>
		<description>mysite are clebrating 50 years.</description>
		<pubDate>1 Jan 2007 09:00:00 GMT</pubDate>
		<author>Rob Charlton</author>
		<guid isPermaLink="false">http://www.mysite.co.uk/news/2007/1/1</guid>
	</item>
	<item>
		<title>Footy Rules</title>
		<link>http://www.www.waring-netts.co.uk/news/2006/10/25</link>
		<description>Football is the biggest game on earth.</description>
		<pubDate>25 Oct 2006 09:00:00 GMT</pubDate>
		<author>Someone</author>
		<guid isPermaLink="false">http://www.mysite.co.uk/news/2006/10/25</guid>
	</item>
	<item>
		<title>A New House for Gran</title>
		<link>http://www.mysite.co.uk/news/2006/10/15</link>
		<description>Gran has a new house.</description>
		<pubDate>15 Oct 2006 09:00:00 GMT</pubDate>
		<author>Mum</author>
		<guid isPermaLink="false">http://www.mysite.co.uk/news/2006/10/15</guid>
	</item>
</channel>
</rss>

 

All I need to do is add a new child node 'item' and if the number of childnodes of channel called item is greater than 50 remove them.

 

here is what I have tried so far with limited (no) success....

 

$file	=	$_SERVER['DOCUMENT_ROOT'] . '/xml/test.xml';
$dom	=	domxml_open_file($file);

$elements	=	$dom->get_elements_by_tagname ('item');

$nonodes	=	count($elements);

if	(
$nonodes	>	4
)
{
$remove	=	$elements[$nonodes - 1];
$child	=	$dom->dump_node($remove);
}

$element	=	$elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");



$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);

 

now all that is doing is replacing the first item node with a line!!!!!

 

I need some kind fo loop to remove child nodes as there could be a situation where a few nodes get added manually so teh script needs to remove all nodes after the 50th one.

 

If anyone can help I woudl be very greatful.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.