【问题标题】:Parsing meta data in RSS feed PHP在 RSS 提要 PHP 中解析元数据
【发布时间】:2011-11-26 03:16:03
【问题描述】:

我正在尝试从以下 RSS 提要(以下仅部分提要)中提取 IMG SRC 值。

我目前正在使用 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??>;
...
}

但是 - 我如何从 RSS 提要下方获取 IMG SRC 值到 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>

【问题讨论】:

    标签: php rss


    【解决方案1】:

    这是 XML CDATA 元素中的 HTML (XML)。 XML 解析器不解析CDATA (character data)。您需要以与其他元素相同的方式提取值。然后,您可以使用正则表达式或更好地再次使用 XML 解析器来解析元素值(如果 HTML 数据是有效的 XML)。

    【讨论】:

    • 谢谢。这将起作用 $desc_imgsrc = $item['METADATA:DESCRIPTION'];
    【解决方案2】:
    $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');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      相关资源
      最近更新 更多