2012-10-17 9 views
3

내가 좋아하는 이전 <title> <pubDate> 등 표준 요소를 사용하여 RSS를 구문 분석하는 SimpleXML을 함께 PHP를 사용하고 있습니다하지만 어떻게 <xCal:location> 또는 xCal 데이터 요소를 사용 <xCal:dtstart> 등의 공급에 사용자 정의 뭔가를 구문 분석?구문 분석 RSS 피드

$item->xCal:dtstart과 같은 오류가 발생합니다. 이 데이터 요소를 어떻게 수집합니까?

이 같은 피드의 샘플 : http://www.trumba.com/calendars/vd.rss?mixin=236393%2c236288

답변

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); 
+2

당신이 PHP 5.2 이상을 사용하는 가정 (? 왜이되지 않을 것') 이상 :

기본적으로, 당신이 필요로하는 것은 ->children() 방법 ('x-trumba ', true) -> masterid'와 같이) 네임 스페이스의 배열을'-> children'에 두 번째 매개 변수로 전달하고 접두사를 직접 사용합니다. – IMSoP

0

은 "뭔가 정의"는 XML 네임 스페이스입니다. SimpleXML 및 네임 스페이스와 관련된 기존 답변을 검색하십시오. ;`), 당신은 주위에 엉망이 필요하지 않습니다 $item->children('xCal', true)->dtStart

관련 문제