Парсинг метаданных в RSS-канал PHP - PullRequest
1 голос
/ 26 ноября 2011

Я пытаюсь извлечь значение IMG SRC из приведенного ниже RSS-канала (только частичный канал ниже).

В настоящее время я использую синтаксический анализатор XML для получения остальных элементов - что работает нормально (например):

foreach($xml['RSS']['CHANNEL']['ITEM'] as $item) 
{
...

            $title = $item['TITLE'];
            $description = $item['DESCRIPTION'];
            $link = $item['LINK'];
        $desc_imgsrc = <how do i get this for below RSS feed??>;
...
}

Однако - как мне получить значение SRC IMG из-под RSS-канала?в переменную PHP?В частности, я пытаюсь извлечь строку "http://thumbnails. ---. Com / VCPS / sm.jpg " в переменную $ desc_imgsrc выше?Как я могу адаптировать приведенный выше код, чтобы сделать это?Благодарю.

<item>
<title>Electric Cars - all about them</title>
<metadata:title xmlns:metadata="http://search.--.com/rss/2.0/Metadata">This is the title metadata</metadata:title>
<description>This is the description</description>
<metadata:description xmlns:metadata="http://search.---.com/rss/2.0/>
<![CDATA[<div class="rss_image" style="float:left;padding-right:10px;"><img border="0" vspace="0" hspace="0" width="10" src="http://thumbnails.---.com/VCPS/sm.jpg"></div><div class="rss_abstract" style="font:Arial 12px;width:100%;float:left;clear:both">This is the description</div>]]></metadata:description>
<pubDate>Fri, 25 Nov 2011 07:00 GMT</pubDate>

Ответы [ 2 ]

0 голосов
/ 26 ноября 2011
$doc = new DomDocument;
@$doc->loadHTML(...); // html string
// use @ to supress the warning due to mixture of xml and html

$items = $doc->getElementsByTagName('img');
foreach ($items as $item)
{
  $src = $item->getAttribute('src');
}
0 голосов
/ 26 ноября 2011

Это HTML (XML) внутри элемента XML CDATA. CDATA (символьные данные) не анализируется анализатором XML.Вам нужно извлечь значение так же, как вы это делали с другими элементами.Затем вы можете проанализировать значение элемента, используя регулярное выражение или, что еще лучше, снова использовать анализатор XML (если данные HTML являются действительными XML).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...