RSS附属iTunes php解析器

时间:2013-12-27 19:03:57

标签: php rss itunes

我尝试创建一个PHP脚本以提取所有数据,但这不起作用。我试图获得im:price和其他属性,但我不知道如何获取它们。

任何人都可以帮我纠正我的剧本吗?

 <?php
$rss = new DOMDocument();
$rss->load('https://itunes.apple.com/fr/rss/topfreeapplications/limit=25/xml');
$feed = array();
foreach ($rss->getElementsByTagName('entry') as $node) {
    $item = array (
        'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
        'price' => $node->getElementsByTagName('im')->item(0)->getAttribute('price')
        'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
        'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,

    );
        array_push($feed, $item);
    }
    $limit = 5;
    for($x=0;$x<$limit;$x++) {
    $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
    $link = $feed[$x]['link'];
    $description = $feed[$x]['desc'];
    $date = date('l F d, Y', strtotime($feed[$x]['date']));
    echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
    echo '<small><em>Posted on '.$date.'</em></small></p>';
    echo '<p> Price is '.$price.'</p>';
    }
?>

1 个答案:

答案 0 :(得分:3)

为了解析所有im个节点,你必须使用这样的命名空间。

$namespaces = $entry->getDocNamespaces(true);
$items = $entry->children($namespaces['im']);

以下是一个让您入门的示例:

<?php 

$rss = "https://itunes.apple.com/fr/rss/topfreeapplications/limit=25/xml";
$xml = simplexml_load_file($rss);

  foreach ($xml->entry as $entry){

$namespaces = $entry->getDocNamespaces(true);

$items = $entry->children($namespaces['im']);

$name = $items->name;
$summary = $entry->summary;
$price = $items->price;
$image = $items->image[1];
$rights = $entry->rights;

对于所有im个节点,请使用$items->foo;。对于没有im命名空间的所有节点,请使用$entry->bar;