我已經使用PHP和simplexml解析RSS,使用標準元素之前像<title> <pubDate>
等。但是,我將如何解析自定義到飼料如<xCal:location>
或<xCal:dtstart>
使用xCal數據元素?使用獨特元素解析RSS源
類似$item->xCal:dtstart
會錯誤。我將如何收集這個數據元素?
這樣的飼料樣品:http://www.trumba.com/calendars/vd.rss?mixin=236393%2c236288
我已經使用PHP和simplexml解析RSS,使用標準元素之前像<title> <pubDate>
等。但是,我將如何解析自定義到飼料如<xCal:location>
或<xCal:dtstart>
使用xCal數據元素?使用獨特元素解析RSS源
類似$item->xCal:dtstart
會錯誤。我將如何收集這個數據元素?
這樣的飼料樣品:http://www.trumba.com/calendars/vd.rss?mixin=236393%2c236288
嘗試這樣的:
$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);
的 「定製的東西」 是一個XML命名空間。搜索關於SimpleXML和名稱空間的現有答案。
基本上,你需要什麼是->children()
方法:$item->children('xCal', true)->dtStart
假設你使用PHP 5.2或更高版本(你爲什麼不成爲';?)'),你不需要浪費時間與命名空間數組,只需將'true'作爲第二個參數傳遞給' - > children'並直接使用前綴(例如'$ item-> children('x-trumba',true) - > masterid')。 – IMSoP