У меня есть данные XML
в которых у какого-то тега элемента есть среда: тег контента у некоторых нет. Как я могу проверить, что контент существует в этом XML
а также, как я могу получить описание в теге media: content ?
Вот данные XML
:
<rss xmlns:content="" xmlns:wfw="" xmlns:dc="" xmlns:atom="" xmlns:sy="" xmlns:slash="" version="2.0"> <channel> <item> <title>Title1</title> <link>Link</link> <pubDate>Date</pubDate> <content:encoded> <![CDATA[ This is description 1 ]]> <![CDATA[ This is description 2 ]]> </content:encoded> <media:content url="URL" type="image/jpeg"> <media:description> <![CDATA[ Text ]]> </media:description> </media:content> </item> <item> -- this item tag does not have media: content <title>Title2</title> <link>Link2</link> <pubDate>Date2</pubDate> <content:encoded> <![CDATA[ This is description 3 ]]> <![CDATA[ This is description 4 ]]> </content:encoded> </item> <item> <title>Title3</title> <link>Link3</link> <pubDate>Date3</pubDate> <content:encoded> <![CDATA[ This is description 5 ]]> <![CDATA[ This is description 6 ]]> </content:encoded> <media:content url="UR1L" type="image/jpeg"> <media:description> <![CDATA[ Text 2 ]]> </media:description> </media:content> </item> </channel> </rss>
2<rss xmlns:content="" xmlns:wfw="" xmlns:dc="" xmlns:atom="" xmlns:sy="" xmlns:slash="" version="2.0"> <channel> <item> <title>Title1</title> <link>Link</link> <pubDate>Date</pubDate> <content:encoded> <![CDATA[ This is description 1 ]]> <![CDATA[ This is description 2 ]]> </content:encoded> <media:content url="URL" type="image/jpeg"> <media:description> <![CDATA[ Text ]]> </media:description> </media:content> </item> <item> -- this item tag does not have media: content <title>Title2</title> <link>Link2</link> <pubDate>Date2</pubDate> <content:encoded> <![CDATA[ This is description 3 ]]> <![CDATA[ This is description 4 ]]> </content:encoded> </item> <item> <title>Title3</title> <link>Link3</link> <pubDate>Date3</pubDate> <content:encoded> <![CDATA[ This is description 5 ]]> <![CDATA[ This is description 6 ]]> </content:encoded> <media:content url="UR1L" type="image/jpeg"> <media:description> <![CDATA[ Text 2 ]]> </media:description> </media:content> </item> </channel> </rss>
Я пробовал:
<?php function feeds() { $url = "http://localhost/xmldata/xmld.xml"; // xmld.xml contains above data $feeds = file_get_contents($url); $rss = simplexml_load_string($feeds); foreach($rss->channel->item as $entry) { if($entry->children('media', true)->content->attributes()) { $md = $entry->children('media', true)->content->attributes(); print_r("$md->url"); } } } ?>
Он возвращает мне ошибку, как показано ниже:
Узел больше не существует
Даже я не знаю, как получить медиа: описание, которое находится в медиатеке: тег контента .