php - 从 <content :encoded> 获取图像 src

标签 php xml simplexml

<分区>

我正在尝试从 <content:encoded> 获取 img url并将 url 插入我的数据库

但我似乎无法从 xml 文件中获取正确的信息-

或者无法使用 simpleXML 检索数据?

这是我的 XML

<item>
  <title>Movietitle</title>
  <content:encoded><![CDATA[<p>
    <img class="aligncenter  wp-image-22085" src="movie-poster-694x1024.jpg" alt="Predestination 2014" width="475" height="701" /></p>
    <p><span id="more-22087"></span></p>
    <p>
    <a href="http://bit.ly/1za5mIz" target="_blank">
    <h4 style="text-align: left;">Release Info:</h4>
    Genre: Sci-Fi, Thriller<br />
    Quality: DVDRip<br />
    Language: English</p>]]>
    </content:encoded>
</item>

PHP

$feeds = array('http://xxxx.xml');
foreach( $feeds as $feed ) {

    $xml = simplexml_load_file($feed);

    foreach($xml->channel->item as $item) {

        $video_title = $item->title;
        $video_img=(string) $item->children($ns['content']);


        $sql = "INSERT INTO video (video_title, video_img, video_date) VALUES (:video_title, :video_img, NOW())";
        $query = $dbh->prepare($sql);
        $query->execute(array(
            ':video_title' => $video_title,
            ':video_img' => $video_img
        ));     
    } 
}

最佳答案

是的,有可能,只需要跟进那个->children(),然后把内容当作HTML。在这种情况下,您可以使用 DOMDocument,然后只需使用 ->getAttribute('src') 即可获取图片标签的来源。

例子:

$xml = simplexml_load_file('http://axxomovies.org/feed', null, LIBXML_NOCDATA);
foreach ($xml->channel->item as $item) {
    $title = (string) $item->title;
    $content = $item->children('content', 'http://purl.org/rss/1.0/modules/content/');
    $html_string = $content->encoded;
    $dom = new DOMDocument();
    libxml_use_internal_errors(true);
    $dom->loadHTML($html_string);
    libxml_clear_errors();
    $img = $dom->getElementsByTagName('img')->item(1)->getAttribute('src');
    echo 'Title: ' . $title . '<br/>';
    echo 'Image source: ' . $img;
    echo '<hr/>';
}

旁注:您无需准备每次迭代。你可以把它从里面取下来,放在循环上面。您只需准备一次。

关于php - 从 <content :encoded> 获取图像 src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27086979/

相关文章:

PHP SimpleXML->addChild - 不需要的空命名空间属性

来自 XML 的 C# 类定义

php - 新手的 Simplexml 和 PHP RSS 提要

javascript - Ajax 调用(之前/成功)在 php 文件内不起作用

php - json 数据返回无效标签错误

php - 如何删除 PhpStorm 中的工具栏

php - 直接在 PHP 中读取传递的 XML 文件

xml - pdf 的 XSL-fo 图像大小问题

python - 在 Python 中过滤 xml 数据

php - 如何使用 SimpleXMLElement 获取 XML 根元素的属性