as3读取xml
在as里面,我觉得最重要和最常用的内容莫过于读取xml数据了,这也是as最常用的和外界数据交互的内容,下面我想和大家一起来对as3读取xml内容进行一些探讨。 下面是本人知道的一些方法,拿出来做个引导,如有不对的,还希望大家能指出来
最常用的方法,按节点读取
xml代码
- <infoPic>
- <pic>
- <url>images/01.jpg</url>
- <content>1</content>
- </pic>
- <pic>
- <url>images/02.jpg</url>
- <content>2</content>
- </pic>
- </infoPic>
? ? as3代码
- var url=new URLRequest("info.xml"); //获取一个xml文件
- var loadurl=new URLLoader(url); //使用URLLoader导入数据
- loadurl.addEventListener(Event.COMPLETE,Loadxml); //添加事件******,以在XML数据导入完成后处理XML数据
- function Loadxml(event:Event) {
- var xml:XML=XML(loadurl.data); //导入完成后,使用导入的数据创建XML对象
- trace(xml.child(0).child(0)); //输出xml对象的第一节点下第一个节点 ,输出结果:images/01.jpg
- }
这是最简单最常用的方法,要想读取xml里面的那个数据,就通过节点读取他,需要注意的是节点是从0开始计数的。 |
?
节点名读取法
上贴说了节点索引读取,那么我们再来看看节点名直接读取 方法也差不多,就改一句话
as3代码
- var url=new URLRequest("info.xml"); //获取一个xml文件
- var loadurl=new URLLoader(url);
- loadurl.addEventListener(Event.COMPLETE,Loadxml);
- function Loadxml(event:Event) {
- var xml:XML=XML(loadurl.data);
- trace(xml.pic[0].url[0]); //输出xml对象的第一个pic节点下第一个url节点 ,输出结果:images/01.jpg
- }
和上面的区别就只有最后输出部分,trace(xml.pic[0].url[0]);,这里需要注意的是,必须得层层读取,如果直接trace(xml.url[0]);就会输出undefined,无法找到你要的内容
|
?
节点属性读取
还有一种常用方法,就是节点属性读取法
xml代码:
- <infoPic>
- <pic>
- <url name='richie'>images/01.jpg</url>
- <content>1</content>
- </pic>
- <pic>
- <url name='dfive'>images/02.jpg</url>
- <content>2</content>
- </pic>
- </infoPic>
?
as3代码:
- var url=new URLRequest("info.xml");
- var loadurl=new URLLoader(url);
- loadurl.addEventListener(Event.COMPLETE,Loadxml);
- function Loadxml(event:Event) {
- var xml:XML=XML(loadurl.data);
- trace(xml.pic[0].url.@name);
- trace(xml.pic[1].url.@name);
- //输出结果:richie
- //输出结果:dfive
- }
|
?
一些注意事项
我这个人就是喜欢啰嗦,呵呵,大家别见怪
补充下我觉得需要注意的地方 编码问题:对于一些xml文件使用GBK编码,as默认是使用的utf-8编码,所以可能会出现乱码现象,这时不要担心,你只要在代码里面加上System.useCodePage=true;,就不会出现乱码了 关于节点索引,如果你清楚知道子节点只有一个,可以省掉节点名的索引值(注意使用child的时候不能省掉索引值) |
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|