이 YouTube 재생 목록 피드에서 비디오 데이터를 가져 와서 재미있는 데이터를 배열에 추가하고 나중에 사용하려고합니다. 그러나 피드에서 볼 수 있듯이 일부 비디오 리드는 " 죽은 "그리고 내 코드에 문제가 발생합니다.SimpleXML - "노드가 없습니다"
$ attrs [ 'url']에 액세스하려고하면 "Node is longer exists"라는 오류가 발생합니다. 내가 액세스하기 전에 노드가 존재하는지 확인하는 방법을 찾기 위해 몇 시간 동안 노력했지만 행운이 없다.
다른 사람이 동일한 결과로 피드를 구문 분석하거나 if-node-exists 확인을 만드는 데 도움이 될 수 있다면 가장 행복 할 것입니다. 자신이 원본 문서 나중에 사용하기 위해 데이터를 저장하려면, 문자열로 캐스팅 (. libxml 관련된 일부 내부 꼬추)에 연결되는,
$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++;
}
감사합니다. 내 문제를 해결했습니다 :) –
문제를 제안 해주세요. 문제에 대해 조금 설명해보십시오. 이것은 많은 도움이됩니다. –
중요 사항 -'$ media-> group-> thumbnail [0]'을 확인하십시오.이 xml 객체가 비어 있는지 확인해야합니다. 그것이 사실이라면 어떤 시도든지'$ media-> group-> thumbnail [0] -> attributes()'를 해결하면이 에러를 얻을 수 있습니다. – Enyby