我学Flash/Flex(2):AS3读取XML文件内容

任何一种语言,读取XML文件的功能基本都是必不可少的。使用AS3读取XML文件,需要使用到以下几个类:

(1)URLRequest类,URLRequest可捕获单个 HTTP 请求中的所有信息。

   URLRequest 对象将传递给 Loader、URLStream 和 URLLoader 类的 load() 方法和其他加载操作,以便启动 URL 下载;

(2)URLLoader类,以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据;

(3)XML类,将对象转换成 XML 对象。

具体代码如下:

View Code
 1     import flash.events.Event;
2 import flash.events.IOErrorEvent;
3 import flash.net.URLLoader;
4 import flash.net.URLRequest;
5
6 //XML读取
7 public class XmlReader
8 {
9 private var _myXML:XML = null;
10
11 private var _xmlString:String = "";
12
13 public function get XMLstring():String
14 {
15 return _xmlString;
16 }
17
18 public function XmlReader()
19 {
20 //构造函数
21 }
22
23 //读取文件
24 public function Read(xmlPath:String):void
25 {
26 //创建URLRequest
27 var request:URLRequest = new URLRequest(xmlPath);
28
29 //创建URLLoader对象
30 var loader:URLLoader = new URLLoader();
31 loader.load(request);
32
33 //添加事件
34 loader.addEventListener(Event.COMPLETE,onComplete);
35 loader.addEventListener(IOErrorEvent.IO_ERROR,onError);
36 }
37
38 //读取文件完成时执行
39 private function onComplete(event:Event):void
40 {
41 var temp:URLLoader = event.target as URLLoader;
42
43 if (temp != null)//验测读取数据是否错误
44 {
45 _myXML = new XML(temp.data);//创建XML实例_myXML,读取xml的数据
46 _xmlString = _myXML.toString();
47 trace(_myXML.toXMLString());//输出_myXML的数据
48 }
49 else
50 {
51 trace("Error:"+event);//输出错误
52 }
53
54 }
55
56 //IO错误
57 private function onError(event:Event):void
58 {
59 trace("IO Error:"+event);
60 }
61 }

示例xml文件Class.xml:

View Code
 1 <?xml version="1.0" encoding="UTF-8"?>
2 <Class>
3 <Student>
4 <Name>xiaoming</Name>
5 <Age>13</Age>
6 <Sex>Male</Sex>
7 </Student>
8 <Student>
9 <Name>xiaozhang</Name>
10 <Age>14</Age>
11 <Sex>Male</Sex>
12 </Student>
13 <Student>
14 <Name>xiaoli</Name>
15 <Age>15</Age>
16 <Sex>Male</Sex>
17 </Student>
18 <Student>
19 <Name>xiaoyang</Name>
20 <Age>16</Age>
21 <Sex>Female</Sex>
22 </Student>
23 </Class>

FB控制台输出结果:

image
这样一个简单的读取XML文件的类就好了,它还可以继续完善。

原文地址:https://www.cnblogs.com/pszw/p/2386035.html