PHP доступ к тегам iTunes в RSS-канале
Вопрос
Мне нужно получить доступ к тегам iTunes в RSS-канале с помощью PHP.Я уже использовал 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
Решение
Этот код работает для меня:
//$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
}
}
Другие советы
Чтобы получить атрибут с помощью SimpleXML, вместо:
$category_text = $channel_itunes->category['text'];
Использование:
$category_text = $channel_itunes->category->attributes()->text;
Если у вас есть PHP5, использование простого XML может помочь в анализе необходимой вам информации.
SimplePie имеет get_item_tags()
функция это должно позволить вам получить к ним доступ.