Próbuję pobrać dane wideo z tego kanału na youtube i dodać interesujące dane do tablicy i użyć ich później, ale jak widać z kanału niektóre wideoklipy to " martwe ", co powoduje problemy z moim kodem.SimpleXML - "Węzeł już nie istnieje"
Pojawia się błąd "Węzeł już nie istnieje", gdy próbuję uzyskać dostęp do $ attrs ['url']. Próbowałem wiele godzin, aby znaleźć sposób sprawdzenia, czy węzeł istnieje przed uzyskaniem do niego dostępu, ale nie mam szczęścia.
Jeśli ktokolwiek mógłby mi pomóc albo sparsować paszę w inny sposób z tym samym wynikiem, albo utworzyć sprawdzony, jeśli działa, byłbym najbardziej szczęśliwy. Z góry dziękuję
$url = 'http://gdata.youtube.com/feeds/api/playlists/18A7E36C33EF4B5D?v=2';
$sxml = simplexml_load_file($url);
$i = 0;
$videoobj;
foreach ($sxml->entry as $entry) {
// get nodes in media: namespace for media information
$media = $entry->children('http://search.yahoo.com/mrss/');
// get video player URL
$attrs = $media->group->player->attributes();
$videoobj[$i]['url'] = $attrs['url'];
// get video thumbnail
$attrs = $media->group->thumbnail[0]->attributes();
$videoobj[$i]['thumb'] = $attrs['url'];
$videoobj[$i]['title'] = $media->group->title;
$i++;
}
Dzięki! Ta kontrola rozwiązała mój problem :) –
Pozwól mi zasugerować problem, spróbuj wyjaśnić trochę o problemie. To bardzo pomaga. –
Ważna sprawa - sprawdź '$ media-> group-> thumbnail [0]' - potrzebujesz sprawdzić ten obiekt xml jako pusty. Jeśli jest to prawda, to przy każdej próbie rozwiąż '$ media-> group-> thumbnail [0] -> attributes()' możesz uzyskać ten błąd. – Enyby