Как разобрать мультимедиа XML: контент с помощью PHP?
Я нашел отличный учебник о том, как выполнить большую часть работы на:
https://www.developphp.com/video/PHP/simpleXML-Tutorial-Learn-to-Parse-XML-Files-and-RSS-Feeds
но я не могу понять, как извлечь медиа: изображения контента из каналов. Я прочитал столько информации, сколько смогу найти, но я все еще застрял.
то есть:Как получить медиа: контент с SimpleXML это предполагает использование:
foreach ($xml->channel->item as $news){
$ns_media = $news->children('http://search.yahoo.com/mrss/');
echo $ns_media->content; // displays "<media:content>"}
но я не могу заставить его работать.
Вот мой сценарий и канал, который я пытаюсь разобрать:
<?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;
?>
Я не знаю, где добавить этот код в скрипт, чтобы он работал. Честно говоря, я пролистал несколько часов, но не смог найти работающий скрипт, который бы анализировал медиа: контент.
Может ли кто-нибудь помочь с этим?
========================
ОБНОВИТЬ:
Спасибо Fusion3K, я получил окончательный рабочий код:
<?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;
?>
В основном все, что мне было нужно, это простая строка:
$image = $xml->channel->item[$i]->children('media', True)->content->attributes();
Не могу поверить, что для технарей было так трудно найти эту информацию в Интернете после прочтения десятков постов и статей. Ну, надеюсь, это будет хорошо для других людей, как я :)