如何从 XML 苹果 RSS 获取数据


how to get data from xml apple rss

我编写了从 http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml 获取数据的代码

  for($i = 0; $i < 10; $i++){
   $title = $xml->entry[$i]->title;  // work
   $name = $xml->entry[$i]->im:name;  //does not work
   $html .= "<br />$title<hr />";} echo $html;

问题是我.我无法获得它的数据.我该如何解决?

您无法以这种方式访问<im:name>

im:是一个命名空间前缀:要使用命名空间标签,您必须使用特定的语法。

您可以使用以下命令检索所有文档的命名空间 URI:

$namespaces = $xml->getDocNamespaces();

您将获得此数组:

Array
(
    [im] => http://itunes.apple.com/rss
    [] => http://www.w3.org/2005/Atom
)
每个数组键都是命名空间

前缀,每个数组值都是命名空间 URI。具有空键的 URI 表示全局文档命名空间 URI。

SimpleXML没有使用命名空间的最佳语法(IMO DOMDocument 是更好的选择)。在您的情况下,您必须以这种方式执行:

$children = $xml->entry[$i]->children( 'im', True );
echo $children->artist . '<br>';
echo $children->name . '<br>';

->entry[0]的结果 :

Prince & The Revolution
Purple Rain

->children第二个参数True表示"将第一个参数视为前缀";作为替代方法,您可以通过以下方式使用完整的命名空间 URI:

$children = $xml->entry[$i]->children( 'http://itunes.apple.com/rss' );

。 ♪ 我只想看到你在紫雨♪中笑...