Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP]xml z youtube
Forum PHP.pl > Forum > Przedszkole
marian84
Mam problem z odczytaniem danych z youtube.

Api zwraca mi piekny plik xml z danymi, które są mi potrzebne, ale mam problem jak przetworzyć je za pomocą php:

A robię tak:

pobieram dane

Kod
$doc = new DOMDocument();
$arrFeeds = array();
$doc->load('https://gdata.youtube.com/feeds/api/playlists/LISTA?v=2');


Następnie w pętli przetwarzam dane (np. title)
Kod
foreach ($doc->getElementsByTagName('entry') as $node) {
        $itemRSS = array (
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue
        );
        array_push($arrFeeds, $itemRSS);
    }

Do tego miejsca działa jak powinno, problem pojawia się gdy chcę pobrać wartości w postaci: <media:group>
np:
Kod
<media:group>
    <media:thumbnail url='http://i.ytimg.com/vi/gULQ5GFIkcA/default.jpg' height='90' width='120' yt:name='default'/>
    <media:thumbnail url='http://i.ytimg.com/vi/gULQ5GFIkcA/mqdefault.jpg' height='180' width='320' yt:name='mqdefault'/>
    <media:thumbnail url='http://i.ytimg.com/vi/gULQ5GFIkcA/hqdefault.jpg' height='360' width='480' yt:name='hqdefault'/>
</media:group>

nie wiem jak odwołać się do elementu <media:group>
Crozin
Zamiast z DOMDocument::getElementsByTagName musisz skorzystać z DOMDocument::getElementsByTagNameNS.
marian84
A mozna coś więcej?

Probuje coś na zasadzie:

Kod
$itemRSS = array (
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'media' => $node->getElementsByTagNameNS('meida', '*')->item(0)->nodeValue
        );


Ale nic z tego:/
Crozin
W XML-u przestrzeń nazw jest reprezentowana przez adres URL. Czyli przestrzeń nazw dla media to adres URL, który znajdziesz przy deklaracji przestrzeni nazw: xmlns:media="http://adres-przestrzeni-nazw".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.