Como analisar a mídia do XML: conteúdo com PHP?
Encontrei um ótimo tutorial sobre como realizar a maior parte do trabalho em:
https://www.developphp.com/video/PHP/simpleXML-Tutorial-Learn-to-Parse-XML-Files-and-RSS-Feeds
mas não consigo entender como extrair mídia: imagens de conteúdo dos feeds. Eu li o máximo de informações possível, mas ainda estou preso.
ou seja:Como obter mídia: conteúdo com o SimpleXML isso sugere o uso de:
foreach ($xml->channel->item as $news){
$ns_media = $news->children('http://search.yahoo.com/mrss/');
echo $ns_media->content; // displays "<media:content>"}
mas não consigo fazê-lo funcionar.
Aqui está o meu script e feed que estou tentando analisar:
<?php
$html = "";
$url = "http://rssfeeds.webmd.com/rss/rss.aspx?RSSSource=RSS_PUBLIC";
$xml = simplexml_load_file($url);
for($i = 0; $i < 10; $i++){
$title = $xml->channel->item[$i]->title;
$link = $xml->channel->item[$i]->link;
$description = $xml->channel->item[$i]->description;
$pubDate = $xml->channel->item[$i]->pubDate;
$html .= "<a href='$link'><h3>$title</h3></a>";
$html .= "$description";
$html .= "<br />$pubDate<hr />";
}
echo $html;
?>
Não sei onde adicionar esse código ao script para fazê-lo funcionar. Honestamente, eu naveguei por horas, mas não consegui encontrar um script de trabalho que analisasse a mídia: conteúdo.
Alguém pode ajudar com isso?
========================
ATUALIZAR:
Thanx para fusion3k, eu tenho o código final trabalhando:
<?php
$html = "";
$url = "http://rssfeeds.webmd.com/rss/rss.aspx?RSSSource=RSS_PUBLIC";
$xml = simplexml_load_file($url);
for($i = 0; $i < 5; $i++){
$image = $xml->channel->item[$i]->children('media', True)->content->attributes();
$title = $xml->channel->item[$i]->title;
$link = $xml->channel->item[$i]->link;
$description = $xml->channel->item[$i]->description;
$pubDate = $xml->channel->item[$i]->pubDate;
$html .= "<img src='$image' alt='$title'>";
$html .= "<a href='$link'><h3>$title</h3></a>";
$html .= "$description";
$html .= "<br />$pubDate<hr />";
}
echo $html;
?>
Basicamente, tudo o que eu precisava era dessa linha simples:
$image = $xml->channel->item[$i]->children('media', True)->content->attributes();
Não posso acreditar que era tão difícil para um técnico não encontrar essa informação on-line depois de ler dezenas de postagens e artigos. Bem, espero que isso sirva bem para outras pessoas como eu :)