3

我需要使用 PHP 访问 RSS 提要中的 iTunes 标签。我以前使用过 simplepie 的播客提要,但我不确定如何使用它来获取 iTunes 标签。有没有办法使用 simplepie 来做到这一点,或者有更好的方法吗?


好的,我尝试了简单的 XML。

所有这些(下面的代码)似乎都有效

$feed = simplexml_load_file('http://sbhosting.com/feed/');
$channel = $feed->channel;
$channel_itunes = $channel->children('http://www.itunes.com/dtds/podcast-1.0.dtd');
$summary = $channel_itunes->summary;
$subtitle = $channel_itunes->subtitle;
$category = $channel_itunes->category;
$owner = $channel_itunes->owner->name;

现在我需要获取 iTunes 类别。似乎以几种方式表示。在这种情况下,我得到以下 XML:

<itunes:category text="Technology"/>
<itunes:category text="Technology">
  <itunes:category text="Software How-To"/>
</itunes:category> 

我希望能够通过以下方式获得类别:

$category_text = $channel_itunes->category['text'];

但这似乎不起作用。

我见过其他方式来表示我真的不知道该找谁的类别。

例如:

科技商业教育

这是媒体的事情还是iTunes的事情或两者兼而有之?

谢谢你的帮助。G

4

5 回答 5

2

SimplePie 有一个get_item_tags()函数可以让你访问它们。

于 2008-10-05T02:33:17.067 回答
1

这段代码对我有用:

//$pie is a SimplePie object
$iTunesCategories=$pie->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES,'category');
if ($iTunesCategories) {
  foreach ($iTunesCategories as $iTunesCategory) {
    $category=$iTunesCategory['attribs']['']['text'];
    $subcat=$iTunesCategory['child']["http://www.itunes.com/dtds/podcast-1.0.dtd"]['category'][0]['attribs']['']['text'];
    if ($subcat) {
      $category.=":$subcat";
    }
    //do something with $category
  }
}
于 2008-12-20T04:45:29.853 回答
1

要使用 SimpleXML 获取属性,请改为:

$category_text = $channel_itunes->category['text'];

采用:

$category_text = $channel_itunes->category->attributes()->text;
于 2018-07-31T07:47:00.683 回答
0
<?php echo $feed_item->children('itunes', true)->image->attributes()->href;?>
于 2022-02-09T10:30:33.057 回答
-1

如果您有 PHP5,使用简单 XML 可以帮助解析您需要的信息。

于 2008-10-05T00:19:54.213 回答