Pergunta

Eu preciso ter acesso às marcas do iTunes em um RSS feed usando PHP. Eu usei SimplePie antes para feeds de podcast, mas eu não tenho certeza de como obter as tags iTunes usá-lo. não existe uma maneira de usar SimplePie fazer isso ou é uma maneira melhor?


Ok eu tentei XML simples.

Tudo isso (o código abaixo) parece funcionar

$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;

Agora eu preciso para obter as categorias itunes. O parecem ser representada de várias formas. Neste caso, eu obter o XML seguinte:

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

Eu seria de esperar para ser capaz de obter a categoria com algo como isto:

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

Mas isso não parece trabalho.

Já vi outras formas de representar a categoria que eu realmente não sei quem para chegar.

Por exemplo:

Tecnologia O negócio Educação

Isso é uma coisa de mídia ou uma coisa itunes ou ambos?

Obrigado por sua ajuda. G

Foi útil?

Solução

Este código funciona para mim:

//$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
  }
}

Outras dicas

Para obter o atributo com SimpleXML, em vez disso:

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

Use:

$category_text = $channel_itunes->category->attributes()->text;

Se você tem PHP5, usando XML simples pode ajudar a analisar a informação que você precisa.

SimplePie tem um get_item_tags() função que deve deixá-lo acessá-los.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top