2012-11-15 2 views
0

XML 파일을 simpleXML을 통해로드합니다. 나는 기껏 PHP에서 초보자 해요 및 PHP 구문 분석에 새하지만 난 내가 저장 한 변수의 구조를 이해하기 위해 노력하고있어var_dump 및 simpleXML?

을 조금 혼란 스러워요, 그래서 위해 var_dump()

시도 나를 혼란 건은 XML 내가 지금 사용하고있어 URL의 덤프 된 데이터

http://gdata.youtube.com/feeds/api/videos?q=surfing&max-results=25

하지 어느 곳입니다 내가 그 찾고 있어요 데이터입니다입니다. 그러나 예를 들어, 지속 시간/초는 덤프 된 변수 데이터에서 찾을 수 없습니다. 어디에서 볼 수 있으며 어떻게 액세스합니까? 그들은 네임 스페이스 (미디어에 속해 있기 때문에, http://pastebin.com/ggumXTEu

+0

에 음을 제공해야합니다, 그것은 할 수 없습니다'를 var_dump'. 모든 데이터는 내부적으로 libxml PHP 리소스에 저장되며 그냥 덤프 할 수 없습니다. – zerkms

+0

데이터가 덤프되고 있지만 그 중 일부는 혼동 스럽습니다. 여기에 출력이 나와 있습니다. http://pastebin.com/ggumXTEu – maezr

+0

어떤 데이터가 표시되지 않습니까? – cegfault

답변

0

<yt:duration>에 대한 경로 위해서 var_dump()를 사용할 때 이러한 요소가 표시되지 /feed/entry/media:group/yt:duration/

입니다 : 여기

는 내가 갖는 출력입니다 yt).

당신은 SimpleXMLElement-를 사용할 수 있습니다> 아이들()이 요소에 액세스하려면, 네임 스페이스 URI 인수로 children()

<ol> 
<?php 
$xml=simplexml_load_file('http://gdata.youtube.com/feeds/api/videos?q=surfing&max-results=25'); 
foreach($xml->entry as $entry) 
{ 
    $duration=$entry 
       ->children('http://search.yahoo.com/mrss/') 
       ->group 
        ->children('http://gdata.youtube.com/schemas/2007') 
        ->duration 
         ->attributes() 
         ->seconds; 
     printf('<li><strong>%s</strong>(%ds)</li>',$entry->title,$duration); 
} 
?> 
</ol>