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的时候不能省掉索引值) |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。