2011-02-04 12 views
5

Próbuję przeanalizować pole listy odtwarzania youtube.Pomoc przy analizie XML za pomocą DOMDocument

URL jest: http://gdata.youtube.com/feeds/api/playlists/664AA68C6E6BA19B?v=2

muszę: Tytuł, Video ID oraz miniaturę domyślny.

mogę łatwo zdobyć tytuł, ale jestem trochę zagubiony, jeśli chodzi o zagnieżdżonych elementów

 $data = new DOMDocument(); 
     if($data->load("http://gdata.youtube.com/feeds/api/playlists/664AA68C6E6BA19B?v=2")) 
     {  
      foreach ($data->getElementsByTagName('entry') as $video) 
      { 
       $title = $video->getElementsByTagName('title')->item(0)->nodeValue; 
       $id = ?? 
       $thumb = ??     
      } 
     } 

Oto XML (Mam odpędza się elementy, które są nieistotne dla tego przykładu)

<entry gd:etag="W/&quot;AkYGSXc9cSp7ImA9Wx9VGEk.&quot;">  
    <title>A GoPro Weekend On The Ice</title> 

    <media:group> 
     <media:thumbnail url="http://i.ytimg.com/vi/yk6wkfVNFQE/default.jpg" height="90" width="120" time="00:02:07" yt:name="default" />   
     <yt:videoid>yk6wkfVNFQE</yt:videoid> 
    </media:group> 

</entry> 

muszę "VideoId" i "URL" z miniaturką-default

dziękuję!

Odpowiedz

7

Podobnie jak w przypadku getElementsByTagName(), którego już używasz, aby uzyskać dostęp do elementów z przypisanymi nazwami (rozpoznawanych przez namespace:element-name), możesz użyć metody getElementsByTagNameNS().

Dokumentacja (połączona z powyższym opisem) powinna dostarczyć informacji technicznych na temat jej użycia, wystarczy powiedzieć, że będzie podobna do poniższej (również przy użyciu getAttribute()).

$yt = 'http://gdata.youtube.com/schemas/2007'; 
$media = 'http://search.yahoo.com/mrss/'; 

// Inside your loop 
$id = $video->getElementsByTagNameNS($yt, 'videoid')->item(0)->nodeValue; 
$thumb = $video->getElementsByTagNameNS($media, 'thumbnail')->item(0)->getAttribute('url'); 

Mam nadzieję, że powinien dać ci wiosenną tablicę, aby uzyskać dostęp do elementów z nazwami w dokumentach XML.

+0

który działa doskonale, dziękuję bardzo! – Titan

+0

działa jak czar !! thx – Zorox

+0

cześć, dlaczego przypisujesz $ media do search.yahoo.com.mrss ?? – nuttynibbles

Powiązane problemy