XML AS3选择图像URL命名空间值

时间:2013-05-09 04:21:15

标签: xml actionscript-3 flash

基本上,对于一个项目,我使用comic strip on deviantart提供的XML在flash中制作漫画阅读器。我到目前为止只是想弄清楚如何在一个项目对象中提取图像的url,我想我主要是在努力学习语法应该如何。我试过:var imgUrl:String = comicXML.children().content.@url;使用comicXML作为网址请求。单独跟踪comicXML是否正常工作并返回XML。

也许有人可以给我一两个提示?

2 个答案:

答案 0 :(得分:1)

这是一个棘手的问题,部分原因是因为挂起并不像处理命名空间那样基本的XML处理。您会在<item>内注意到标记<media:content url="blahblahblah" />

media:”使content成为媒体命名空间的一部分,它允许我们将两个具有相同名称的标记作为父标记的一部分,而不会与同名的标记冲突其他名称空间。您可以看到<item>同时包含<title><media:title>,并且不会抱怨它。

您还会注意到,在您的根标记中,有多个使用xmlns定义的名称空间(media,atom和creativeCommons):

<rss xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
     version="2.0">

要使用它们,您需要创建一个Namespace变量:

var myXML:XML = new XML( loader.data );
var media:Namespace = myXML.namespace("media");

现在我们已经创建了代表xmlns:media的媒体,我们可以使用带有这样的代码的media:前缀访问任何标签(注意::双冒号):

trace(myXML.channel.item[0].media::content.@url);

我发现这些链接很有用(特别是第二个!):

http://lab.revoke.ca/2009/05/as3-xml-namespace/

http://coursesweb.net/actionscript/xml-e4x-namespaces

答案 1 :(得分:0)

首先,您必须加载网址请求,然后将数据转换为xml

var myLoad:URLLoader = new URLLoader();
myLoad.load(new URLRequest("art.xml"));
myLoad.addEventListener(Event.COMPLETE, getXML);
var myXML:XML;

function getXML(e:Event):void {
  myXML = new XML(e.target.data);
}

然后从那里你想使用XMLList来检索你想要的信息:

示例xml:

<pictures>
<item>
   <file>filename.jpg</file>
</item>
<item>
   <file>filename2.jpg</file>
</item>
</pictures>

所以然后使用XMLList如下:

var xl:XMLList = myXML.item;
var i:int = 0;
for each (var labelElement:XML in xl) 
{
   trace(labelElement.data.text()[i]);
   ++i;
}

希望这有帮助。