基本上,对于一个项目,我使用comic strip on deviantart提供的XML在flash中制作漫画阅读器。我到目前为止只是想弄清楚如何在一个项目对象中提取图像的url,我想我主要是在努力学习语法应该如何。我试过:var imgUrl:String = comicXML.children().content.@url;
使用comicXML作为网址请求。单独跟踪comicXML是否正常工作并返回XML。
也许有人可以给我一两个提示?
答案 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);
我发现这些链接很有用(特别是第二个!):
答案 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;
}
希望这有帮助。