3

PHPをsimplexmlで使用して、likeなどの前に標準要素を使用してRSSを解析しました。しかし、フィードにカスタムなもの、またはxCalデータ要素を使用する<title> <pubDate>ものをどのように解析しますか?<xCal:location><xCal:dtstart>

のようなもの$item->xCal:dtstart はエラーになります。このデータ要素をどのように収集しますか?

このようなフィードのサンプル:http: //www.trumba.com/calendars/vd.rss?mixin = 236393%2c236288

4

2 に答える 2

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);
于 2012-10-17T04:55:52.533 に答える
0

「何かカスタム」はXML名前空間です。SimpleXMLと名前空間に関する既存の回答を検索します。

基本的に、必要なのは次の->children()方法です。$item->children('xCal', true)->dtStart

于 2012-10-17T17:02:18.727 に答える