phpXML Home | XML Test Sandbox | RSS Feed Example | Flash-to-PHP Example

To see the source code for this sample, scroll to the below the feed listing or click here.

Feed URL: http://news.com.com/2547-1_3-0-5.xml

Select a technology news feed:

Jacob Appelbaum, who volunteers with Wikileaks, is questioned for three hours and has mobile phones confiscated on his way back to the U.S. for hacker show.
A Brazilian promotion for Omo detergent involves 50 boxes that have GPS inside. Customers lucky enough to buy one of these boxes will be followed home in order to be given a very technological prize.
The future role of cloud computing is in many ways unpredictable and ever changing. What balance of traditional infrastructure, private clouds, and public cloud services will your IT department consume in the next three years? Five years? The trick is to hedge your bets wherever you can.
The fast-growing social-gaming site says it has hired Allen & Co. investment banker David Wehner as its new chief financial officer.
An enterprising marketer is attempting to persuade geeks that the new geek chic consists of wearing Apple's Spinning Wheel of Doom on their chests. Will it work?
Multiple reports indicate that an Intel buyout of chipmaker Infineon's wireless unit may be imminent.
Organizers of contest at hacking confab hope showing how easy it is to get data from cold calls to companies will help alert firms to the threat of social engineering.
If you know what this is and where it's located, you could win a prize in the CNET Road Trip Picture of the Day challenge.
Here are a few of CNET Reviews' favorite items from the past week, including the 2011 BMW 535i, the Sony BDV-E770W home theater system, and the Apple Magic Trackpad.
Road Trip 2010: CNET reporter Daniel Terdiman calls out the best cross-section of players in baseball history.
Road Trip 2010: After a lifetime as a fan, CNET reporter Daniel Terdiman finally makes it to Cooperstown.
Amateur astronomer Douglas Smith made his own stargazing telescope, and it can see details on the moon. Have a look.
Douglas Smith built a telescope out of plywood, aluminum, and porthole glass. Now he can see the rings of Saturn and the moons of Jupiter.
Road Trip 2010: The Baseball Hall of Fame showcases many of the most memorable moments of America's Pastime, as well as its most cherished players, and even some of its most notorious scandals.
At Black Hat, a trio of security representatives from Mozilla detailed how the company plans to push the browser to be more secure for users while nudging developers towards safer coding practices.
RIAA wants to make sure that nothing happens to Lime Wire's assets before courts decide how much the file-sharing service must pay in damages. Judge says assets aren't going anywhere.
A preliminary ruling rejected a claim that Intel's pricing practices hurt consumers.
CNET Car Tech gets to take the Nissan Leaf electric car for a preview drive.
Attackers exploiting a hole involving how Windows handles shortcut, or .lnk, files prompt Microsoft to rush out an emergency patch, well before its next scheduled Patch Tuesday.
Got a great idea for your own tech company? Today we're talking about how to make it a business, with two great guests: XMarks CEO James Joaquin, and Mahalo CEO (and This Week in Startups host) Jason Calacanis

Sample source code:
Please keep in mind that the code behind this actual page is a bit more complex than the code below because I wanted to be able to get a quick digest of technology feeds and wanted to make updating this page super easy. The actual code behind this page allows be to just type in a couple of properties for a new feed and the page automatically includes the new feed. The code below is a nice and simple version of what this page does. It's purpose is to help show you how quickly and easily the phpXML() class makes RSS aggregation possible.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
    <title>RSS Feed Sample</title>
</head>

<body>

<form name="theForm" method="post" style="margin:0px;padding:0px;">

<!-- this drop-down auto-submits to reload the new feed once a selection is made -->
<p>Select a technology news feed: 
<select name="feedID" onChange="submit()">
<option value="cnet"<?=$feedID == "cnet" " selected" "" )?>>CNET</option>
<option value="cnn"<?=$feedID == "cnn" " selected" "" )?>>CNN</option>
<option value="eweek"<?=$feedID == "eweek" " selected" "" )?>>eWeek</option>
<option value="reuters"<?=$feedID == "reuters" " selected" "" )?>>Reuters</option>
<option value="usatoday"<?=$feedID == "usatoday" " selected" "" )?>>USA Today</option>
<option value="bbc"<?=$feedID == "bbc" " selected" "" )?>>BBC</option>
<option value="wired"<?=$feedID == "wired" " selected" "" )?>>Wired</option>
</select></p>

</form>

<?php

include( "phpXML.class.php" );

// instantiate the new XML parser
$feed = new phpXML();

// our custom list of XML feed URLs
$feedList = array( 
    
"cnet" => "http://news.com.com/2547-1_3-0-5.xml",
    
"cnn" => "http://rss.cnn.com/rss/cnn_tech.rss",
    
"eweek" => "http://rssnewsapps.ziffdavis.com/tech.xml",
    
"reuters" => "http://today.reuters.com/rss/technologyNews/",
    
"usatoday" => "http://www.usatoday.com/repurposing/TechRss.xml",
    
"bbc" => "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/technology/rss.xml"
    
"wired" => "http://www.wired.com/news/feeds/rss2/0,2610,3,00.xml"
);

// if first time to this page (not here by submit), set the default feed to show
if( !empty( $_POST["feedID"] ) )
    
$feedID $_POST["feedID"];
else
    
$feedID "cnet";

echo 
"<p>Feed URL: " $feedList[$feedID] . "</p>\n\n";

// load the XML from the URL for the selected feed
$feed->load$feedList[$feedID] );

// parse out the title of this feed's source and its website URL
echo "<p>Title of Source: " $feed->childNodes[0]->childNodes[0]->findChildByName"title" )->value "<br/>\n" .
    
"URL for Source: " $feed->childNodes[0]->childNodes[0]->findChildByName"link" )->value "</p>\n\n";

echo 
"<div class=\"feedTrough\">";
// find all nodes in the tree named, "item" 
$items $feed->getAllByName"item" );
$feedLines = array();
// iterate through list of "item" nodes and get title, sub-title, and URL
foreach( $items as $item ) {
    
// find this item's "title" node
    
$head $item->findChildByName"title" );
    
// this this item's "link" node
    
$url $item->findChildByName"link" );
    
// and, finally, get the node named, "description"
    
$subhead $item->findChildByName"description" );
    
// echo it all out in whatever layout you like
    
echo "<div class=\"heading\"><a href=\"" $url->value "\" title=\"" $head->value "\">" $head->value "</a></div>\n";
    echo 
"<div class=\"subhead\">" html_entity_decode$subhead->value ) . "</div>\n\n";
}
echo 
"</div>\n";

?>


</body>

</html>