Blame | Letzte Änderung | Log anzeigen | RSS feed
<?PHP/*** This example shows how to create any object* from an XML document. In this case we get* some aggregated objects for channel and items* from an RSS feed.** @author Stephan Schmidt <schst@php.net>*/error_reporting(E_ALL);require_once 'XML/Unserializer.php';/*** class for the RDF docuemnt***/class rdfDocument{var $channel;var $item;function getItems($amount){return array_splice($this->item,0,$amount);}}/*** class that is used for a channel in the RSS file** you could implement whatever you like in this class,* properties will be set from the XML document*/class channel{function getTitle(){return $this->title;}}/*** class that is used for an item in the RSS file** you could implement whatever you like in this class,* properties will be set from the XML document*/class item{function getTitle(){return $this->title;}}$options = array(XML_UNSERIALIZER_OPTION_COMPLEXTYPE => 'object',XML_UNSERIALIZER_OPTION_TAG_MAP => array('rdf:RDF' => 'rdfDocument', // this is used to specify a classname for the root tag));// be careful to always use the ampersand in front of the new operator$unserializer = &new XML_Unserializer($options);$status = $unserializer->unserialize('http://pear.php.net/feeds/latest.rss',true);if (PEAR::isError($status)) {echo 'Error: ' . $status->getMessage();} else {$rss = $unserializer->getUnserializedData();echo 'This has been returned by XML_Unserializer:<br>';echo '<pre>';print_r($rss);echo '</pre>';echo '<br><br>Root Tagname: '.$unserializer->getRootName().'<br>';echo 'Title of the channel: '.$rss->channel->getTitle().'<br>';$items = $rss->getItems(3);echo '<br>Titles of the last three releases:<br>';foreach ($items as $item) {echo 'Title : '.$item->getTitle().'<br>';}}?>