使用唯一元素解析RSS Feed

时间:2012-10-17 03:53:01

标签: php parsing rss simplexml

我使用PHP和simplexml一起使用标准元素来解析RSS,然后再像<title> <pubDate>那样解析。但是我如何解析使用xCal的<xCal:location><xCal:dtstart>之类的自定义内容数据元素?

$item->xCal:dtstart之类的内容会出错。我该如何收集这个数据元素?

这样的Feed示例:http://www.trumba.com/calendars/vd.rss?mixin=236393%2c236288

2 个答案:

答案 0 :(得分:3)

试试这样:

$feedUrl = 'http://www.trumba.com/calendars/vd.rss?mixin=236393%2c236288';
$rawFeed = file_get_contents($feedUrl);
$xml = new SimpleXmlElement($rawFeed);

$ns = $xml->getNamespaces(true);

//print_r($ns);
$xCal = $xml->channel->children($ns['xCal']);
echo ($xCal->version)."<br />";

foreach($xml->channel->item as $item)
{
    //print_r($item);
    $itemxTrumba=$item->children($ns['x-trumba']);
    echo $itemxTrumba->masterid."<br />";
}
//print_r($xCal);

答案 1 :(得分:0)

“自定义内容”是XML命名空间。搜索有关SimpleXML和名称空间的现有答案。

基本上,您需要的是->children()方法:$item->children('xCal', true)->dtStart