Парсинг URL-адреса RSS-приложения - PHP - PullRequest
0 голосов
/ 08 июня 2018

Итак, я столкнулся с очень странной ситуацией, когда я пытаюсь проанализировать URL-адрес вложения из RSS-канала для определенного элемента.Мне нужна ссылка на прикрепленное изображение.Однако все методы, которые я пробовал, предоставляют мне фактическую ссылку на статью, а не ссылку на изображение.

<item> <title>Patches of Snow on the Red Planet</title>
<link>http://www.nasa.gov/image-feature/patches-of-snow-on-the-red- 
planet</link>
<description>In early Martian summer, at the time NASA&#039;s Mars 
Reconnaissance Orbiter acquired this image, the dunes are almost free of 
their seasonal ice cover.</description>
<enclosure 
url="http://www.nasa.gov/sites/default/files/thumbnails/image/marssnow.jpg" 
length="516834" type="image/jpeg" />
<guid isPermaLink="false">http://www.nasa.gov/image-feature/patches-of-snow- 
on-the-red-planet</guid>
<pubDate>Tue, 05 Jun 2018 15:06 EDT</pubDate>
<source url="http://www.nasa.gov/rss/dyn/image_of_the_day.rss">NASA Image of 
the Day</source>
</item>

Я пробовал все виды перестановок

$this->enclosure->url;

$this->enclosure['url'];

и т. Д.

Даже когда я пытаюсь определить длину корпуса, я все равно получаю URL статьи.

Я получаю URL-адрес "ссылки", а не URL-адрес приложения.

Любая помощь приветствуется.Заранее спасибо.

1 Ответ

0 голосов
/ 08 июня 2018

Вы должны использовать getElementsByTagName('enclosure'), чтобы получить элемент DOM по имени тега, после этого используйте getAttribute('url') для получения URL-адреса из enclosure тега

Мой код

<?php 
header('Content-Type: application/json');
$xml = <<< XML
<item> <title>Patches of Snow on the Red Planet</title>
<link>http://www.nasa.gov/image-feature/patches-of-snow-on-the-red- 
planet</link>
<description>In early Martian summer, at the time NASA&#039;s Mars 
Reconnaissance Orbiter acquired this image, the dunes are almost free of 
their seasonal ice cover.</description>
<enclosure 
url="http://www.nasa.gov/sites/default/files/thumbnails/image/marssnow.jpg" 
length="516834" type="image/jpeg" />
<guid isPermaLink="false">http://www.nasa.gov/image-feature/patches-of-snow- 
on-the-red-planet</guid>
<pubDate>Tue, 05 Jun 2018 15:06 EDT</pubDate>
<source url="http://www.nasa.gov/rss/dyn/image_of_the_day.rss">NASA Image of 
the Day</source>
</item>
XML;

$dom = new DOMDocument;
$dom->loadXML($xml);
$ens = $dom->getElementsByTagName('enclosure');
foreach ($ens as $en) {
    echo $en->getAttribute('url'); 
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...