使用AS3从XML / RSS文件中读取属性

时间:2011-02-14 18:09:09

标签: flash actionscript-3

非常简单的问题,我有这个:(只是完整rss文件的一部分)

 <item>
      <title>Ok, de regalo de San Valentin me pueden dar un viaje a Playa del Carmen! Digo, entre todos lo pagan! No?? #So&#241;arNoCuestaNada</title>
      <link>http://twitter.com/glenyvalente/statuses/37202068301295616</link>
      <description>Ok, de regalo de San Valentin me pueden dar un viaje a &lt;b&gt;Playa&lt;/b&gt; del Carmen! Digo, entre todos lo pagan! No?? &lt;a href=&quot;http://search.twitter.com/search?q=%23So%C3%B1arNoCuestaNada&quot; onclick=&quot;pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#So&#241;arNoCuestaNada');&quot;&gt;#So&#241;arNoCuestaNada&lt;/a&gt;</description>
      <pubDate>Mon, 14 Feb 2011 17:30:38 +0000</pubDate>
      <guid>http://twitter.com/glenyvalente/statuses/37202068301295616</guid>
      <author>glenyvalente@twitter.com (Gleny Valente)</author>
      <media:content type="image/jpg" width="48" url="http://a1.twimg.com/profile_images/1225905511/S5030401_normal.JPG" height="48"/>
      <google:image_link>http://a1.twimg.com/profile_images/1225905511/S5030401_normal.JPG</google:image_link>
      <google:location>Venezuela</google:location>
      <twitter:metadata>
        <twitter:result_type>recent</twitter:result_type>
      </twitter:metadata>
    </item>

我使用以下内容阅读<title><pubDate>

function rssLoaded(evt:Event):void {
    rssXML = XML(rssLoader.data);
    for(var item:String in rssXML.channel.item) {
    fechas.push(rssXML.channel.item[item].pubDate.substr(0, 16));
    titulos.push(rssXML.channel.item[item].title);
    trace(rssXML.channel.item[item].media:content.attributes.url);
    total=total+1;
    }
    trace(total);
}

但是,trace(rssXML.channel.item[item].media:content.attributes.url);始终为空,那么如何从标记<media>中读取属性 url ?谢谢!

2 个答案:

答案 0 :(得分:0)

好的,试试这个

尝试rssXML.channel.item [item] .namespace(“media”):: content。@ url

答案 1 :(得分:0)

以下信息将为您提供最接近您的请求的答案: 在您的AS代码部分添加此导入:

private var media:Namespace = new Namespace("http://search.yahoo.com/mrss/");

然后在您的功能块中,您可以通过以下方式访问媒体名称空间:

var urlString:String = rssXML.media::content.@url[0];

media :: content使用上面导入的媒体命名空间。现在您可以访问内容等成员。其中就是成员url,它可以是一个索引数组 - 所以我们具体说@url [0]来获取第一个条目。

如有疑问,可以参考以下补充答案: XML AS3 Selecting Image URL Namespace value