我有一个带有大量数据的XML,名为userData.xml,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<videos>
<vid src="videos/video1.flv"/>
<vid src="videos/video2.flv"/>
</videos>
<images>
<img src="images/image1.jpg"/>
<img src="images/image2.jpg"/>
</images>
我想做的就是(使用AS3)获取image1.jpg并将其添加到imageHolderOne_mc并获取image2.jpg将其添加到imageHolderTwo_mc。完全忽略XML的视频部分(必须保留用于其他用途)
我真的希望有人可以提供帮助 提前致谢
答案 0 :(得分:1)
查看xml primer from republicofcode as3中的how to load images dynamically
基本上就像......
var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("yourxmlfile.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
myXML = new XML(e.target.data);
for each(var imgSrc:String in myXML.images.*.@src){
createLoader(imgSrc, #NAME_OF_MOVIE_CLIP#);
}
}
function createLoader ($imgUrl:String, $placeholder:MovieClip){
var myLoader:Loader = new Loader();
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);
var fileRequest:URLRequest = new URLRequest($imgUrl);
myLoader.load(fileRequest);
function onLoaderReady(e:Event) {
// the image is now loaded, so let's add it to the display tree!
$placeholder.addChild(myLoader);
}
}
答案 1 :(得分:0)
尝试换行根标记。
使用e4x标准/
来忽略根标签
因此,如果没有根标记,XML解析器就会混淆
访问数据时,您也会忽略根标记而不是引用它。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<videos>
<vid src="videos/video1.flv"/>
<vid src="videos/video2.flv"/>
</videos>
<images>
<img src="images/image1.jpg"/>
<img src="images/image2.jpg"/>
</images>
</root>
这样访问。
var myXML:XML = new XML(
<root>
<videos>
<vid src="videos/video1.flv"/>
<vid src="videos/video2.flv"/>
</videos>
<images>
<img src="images/image1.jpg"/>
<img src="images/image2.jpg"/>
</images>
</root>
);
trace(myXML)
for each(var img:XML in myXML.images.img ){
trace( img.@src )
}