我使用PHP和simplexml一起使用标准元素来解析RSS,然后再像<title> <pubDate>
那样解析。但是我如何解析使用xCal的<xCal:location>
或<xCal:dtstart>
之类的自定义内容数据元素?
$item->xCal:dtstart
之类的内容会出错。我该如何收集这个数据元素?
这样的Feed示例:http://www.trumba.com/calendars/vd.rss?mixin=236393%2c236288
答案 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