Jamesking56 6 Posted December 7, 2010 Report Share Posted December 7, 2010 (edited) Hi,I'm trying to get my WordPress Blog to show in an Admin Panel Dashboard for my script. Its an XML.Whats the best way to do this?My Feed is: http://www.powercp.co.uk/feed/I want it so that it looks like: <h3><a href="{ARTICLE LINK}">{ARTICLE TITLE}</a></h3><p>{DATE & TIME} by {ARTICLE CREATOR}</p> How can I do this?(UPDATE: Solved!) Edited December 15, 2010 by jamesking56 Quote Link to post Share on other sites
Dilated 0 Posted December 7, 2010 Report Share Posted December 7, 2010 Hi,I'm trying to get my WordPress Blog to show in an Admin Panel Dashboard for my script. Its an XML.Whats the best way to do this?You want to parse the feed externally? Quote Link to post Share on other sites
Jamesking56 6 Posted December 7, 2010 Author Report Share Posted December 7, 2010 You want to parse the feed externally?Yeah, this script I'm making will be installed on other domains so I want to pull it down from that URL.How can I do this? Quote Link to post Share on other sites
Dilated 0 Posted December 7, 2010 Report Share Posted December 7, 2010 (edited) Yeah, this script I'm making will be installed on other domains so I want to pull it down from that URL.How can I do this?A couple ways.First you have to start by getting the feed data. The simplest way would be to use file_get_contents if you have allow_url_fopen on. Otherwise, you can cURL it.Once you actually have the data, the next step is to choose a method of parsing it. In my opinion, the easiest way would be to use SimpleXML (http://us2.php.net/manual/en/book.simplexml.php) and to create a simplexml object from the feed's markup. Then you can iterate through it and grab whatever data you need. Otherwise you could use regex's.I'm sure there are a lot of feed parser scripts out there already though. You can just use one of them rather than writing it yourself. Edited December 7, 2010 by Dilated Quote Link to post Share on other sites
Jamesking56 6 Posted December 13, 2010 Author Report Share Posted December 13, 2010 I'm still stuck with this...Can someone show me the code for it?My code is currently: // Get Blog $xmlDoc = new DOMDocument(); $xmlDoc->load("FEED URL HERE"); $x = $xmlDoc->documentElement; foreach( $x->childNodes as $item ) { //$powercp_blog .= $item->nodeName . " = " . $item->nodeValue . "<br />"; echo $item->nodeName . " | "; if ( $item->nodeName == "channel" ) { echo $item->nodeName; $powercp_blog .= "<p>"; $powercp_blog .= $item->nodeValue; $powercp_blog .= "</p>"; } } $template->assign('powercp_blog', $powercp_blog); This displays it all stupidly (obviously). Quote Link to post Share on other sites
Dilated 0 Posted December 13, 2010 Report Share Posted December 13, 2010 I'm still stuck with this...Can someone show me the code for it?This displays it all stupidly (obviously).Again, I'd recommend SimpleXML over DOMDocument. Simple XML was made for this kind of thing. Here's an example of what it might look like:$feed = new SimpleXMLElement('FEED_URL_HERE', 0, true);foreach ($feed->channel as $channel) { echo('Channel Title:'.$channel->title); echo('Channel Description:'.$channel->description); foreach ($channel->item as $item) { echo('Item Title: '.$item->title); echo('Item Description: '.$item->description); }} Quote Link to post Share on other sites
Jamesking56 6 Posted December 15, 2010 Author Report Share Posted December 15, 2010 Again, I'd recommend SimpleXML over DOMDocument. Simple XML was made for this kind of thing. Here's an example of what it might look like:$feed = new SimpleXMLElement('FEED_URL_HERE', 0, true);foreach ($feed->channel as $channel) { echo('Channel Title:'.$channel->title); echo('Channel Description:'.$channel->description); foreach ($channel->item as $item) { echo('Item Title: '.$item->title); echo('Item Description: '.$item->description); }} This worked! Thanks guys its all working now and I've even limited it to 5 records and everything! Thank you! Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.