четверг, февраля 14, 2008

E4X запросы с учетом namespace'ов

Допустим у нас есть некий XML (например, rss поток):
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<item>
<title>News feeds from the BBC</title>
<description></description>
<link>http://news.bbc.co.uk/go/rss/-/1/hi/help/rss/3223484.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/1/hi/help/rss/3223484.stm</guid>
<pubDate>Mon, 21 Aug 2006 08:34:42 GMT</pubDate>
<category>RSS</category>
<media:group>
<media:category>RSS</media:category>
<media:copyright>(C) British Broadcasting Corporation</media:copyright>
</media:group>
</item>
</channel>
</rss>
Чтобы получить данные тегов из пространства имен media необходимо поступить следующим образом:

1) создать пространство имен
var media:Namespace = new Namespace("http://search.yahoo.com/mrss/");

2) обращаться к необходимым узлам с использованием этого пространства имен
var copyright:String = xml.channel.item.media::group.media::copyright.text();

3) Ответ верный:
(C) British Broadcasting Corporation

3 комментария:

Sergey комментирует...

или
var media:Namespace = xml.namespace('media');

Unknown комментирует...

Похоже, это твой первый пост, попавший в MXNA? Поздравляю! =)

Andrey Gorbatov комментирует...

Спасибо:)
Месяца 3 ждал ответа.