1.XML概述:XML技术是一种基于标签的层次结构技术.
1.1.XML document(XML文件):指的是XML文件,完全不同于XMLDocument类.
1.2.XML node(XML节点) 是XML的基本组成部分,节点可以是元素,文本节点或属性.
1.3.XML element(XML元素):一般被理解为标签,但是XML元素包含的都是成对标签.
1.4.Root node(根节点):最外层的XML元素
1.5.Attribute(属性):XML元素的一部分,位于标签内.
1.6.XML declaration(XML声明):一个特殊的标签,说明该文件是XML文件.
2XML数据的优点:
2.1.用户可以手工编辑或程序编写XML,可以很容易表示负责的数据类型.
2.2.大部分服务端语言都支持XML的读取操作.
2.3.XML是一种标准,可以很容易的在不同应用程序或者平台上传递和存储.
3.创建XML对象
3.1.使用XML标签创建XML对象
格式:var XML变量:XML=<根元素>
<元素1/>
<元素2/>
.......
<元素n/>
</根元素>;
Code // {}操作符可以用来进行动态数据绑定 var ss:String = " a " ; var example:XML =< abc > < a > {ss} </ a > < b > b </ b > < c > c </ c > </ abc > ; Alert.show(example); 3.2使用字符串创建XML对象
格式: var XML变量:XML=new XML(字符串);
var ss:String = " a " ; var str:String = " <abc><a> " + ss + " </a><b>b</b><c>c</c></abc> " ; var example:XML = new XML(str); Alert.show(example); 4.XML对象添加元素:为XML对象添加新元素有四种方法:1将元素名作为属性添加元素,2使用"[]"操作符添加元素,使用insertChildBefore方法添加元素,使用insertChildArter方法添加元素.
4.1将元素名作为属性添加元素
格式:XML对象名.新元素名=内容;
4.2使用"[]"操作符添加元素
格式:XML对象名[新增元素名]=内容;
4.3.insertChildBefore方法:在某元素前插入新元素.
格式:XML对象名.insertChildBefore(XML元素,新元素);
4.4.insertChildArter方法:在某元素后
插入新元素.
格式:XML对象名.insertChildArter(XML元素,新元素);
Code var example:XML =< example /> ; // 使用元素名作为属性添加 example.newElemnet =< newElemnet /> ; var id: int = 10 ; // 使用"[]"操作符 example[ " user " + id] = "" ; example.two = "" ; // 使用XML自带的方法 example = example.insertChildBefore(example.two, < one /> ); example = example.insertChildAfter(example.two, < three /> ); 5.XML对象中添加元素内容:XML元素内容指两个封闭标签间的内容.
5.1将元素名作为属性添加元素内容
格式:XML对象.元素名=值;
Code var example:XML =< example /> ; // 使用元素名作为属性添加 example.firstname = " Jason " ; example.age = 25 ; example.boolean = true ; example.abc = [ " a " , undefined, " b " , " c " , null , 7 , false ]; /* 显示: <example> <firstname>Jason</firstname> <age>25</age> <boolean>true</boolean> <abc>a,,b,c,,7,false</abc> </example> * */ 5.2.使用XML类中的方法添加元素内容
XML对象.appendChild(内容);
XML对象.prependChild(内容);
XML对象名.insertChildBefore(XML元素,新元素);
XML对象名.insertChildArter(XML元素,新元素);
Code var example:XML =< example /> ; // 使用XML类方法 example.appendChild( < two > 2 </ two > ); // 增加<two>元素值为2 example.prependChild( < one > " number 1 " </ one > ); // 增加<one>元素,值为"number 1". example.insertChildAfter(example.one[ 0 ], 1.5 ); // 在第一个<one>后添加值为1.5 example.insertChildBefore(example.two[ 0 ], < part > 1.75 </ part > ); // 在第一个<two>后添加<part>新元素,值为:1.75 /* 显示 *<example> <one>"number 1"</one> 1.5 <part>1.75</part> <two>2</two> </example> */ 6.XML元素中添加属性:包含在元素内的名称和值.
6.1.使用"@"操作符添加属性
格式:XML对象名.元素名.@属性=值;
6.2.使用"[]"操作符添加属性
格式:XML对象名.元素名.@[属性名]=值;
Code // 使用"@"操作符 var example:XML =< example >< someElement /></ example > ; example.someElement.@number = 12.1 ; example.someElement.@string = " example " ; example.someElement.@boolean = true ; example.someElement.@array = [ " a " , null , 7 , undefined, " c " ]; // 使用"[]"操作符 example.someElement.@[ " color " + 11 ] = " red " ; Alert.show(example); /* 显示: <example> <someElement number="12.1" string="example" boolean="true" array="a,,7,,c" color11="red"/> </example> * */ 7.从XML中读取元素
从XML中读取元素可以使用elements方法,elements方法返回该XML根节点下全部直接子节点元素.
格式:XML对象.elements();
Code public function ReadXml() { var menu:XML =< menu > < menuitem label = " File " > < menuitem label = " New " /> </ menuitem > < menuitem label = " Help " > < menuitem label = " About " /> </ menuitem > This is a text node </ menu > ; var result:String = "" ; for each (var element:XML in menu.elements()) { result = result + element.@label + " \n " ; } Alert.show(result); /* 返回结果 File Help */ // 在这边因为File和Help是根节点的直接子节点,所以只返回这两个节点, // 而New和About则是这两个节点的子节点,所以不返回 // 如果要返回所有节点需要向下递归 walk(menu); /* 返回结果 * File New Help About */ } public function walk(node:XML): void { var result:String = "" ; for each (var element:XML in node.elements()) { Alert.show(element.@label); walk(element); } }