【问题标题】:get image src from <content:encoded> [duplicate]从 <content:encoded> 获取图像 src [重复]
【发布时间】:2014-11-23 08:24:31
【问题描述】:

我正在尝试从&lt;content:encoded&gt; 获取一个 img 网址并将该网址插入我的数据库中

但我似乎无法从 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
        ));     
    } 
}

【问题讨论】:

标签: php xml simplexml


【解决方案1】:

是的,有可能,只需跟进 -&gt;children(),然后将内容视为 HTML。在这种情况下你可以使用DOMDocument,然后使用-&gt;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/>';
}

旁注:您不需要准备每次迭代。您可以将其取下并放在循环上方。您只需准备一次。

【讨论】:

  • 这真的很顺利。也感谢旁注。
  • @Dymond 肯定我很高兴这有帮助
猜你喜欢
  • 1970-01-01
  • 2014-12-29
  • 2015-12-31
  • 2018-12-30
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
相关资源
最近更新 更多