appendChild(child:object):XML:在当前子元素列表之后添加。
prependChild(child:object):XML:在当前子元素列表之前添加。
insertChildAfter(child1:object, child2:object):*:在子元素child1之后添加
insertChildBefore(child1:object, child2:object):*:在子元素child1之前添加
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var foo:XML = <data/> foo.appendChild(<d>dd</d>); trace(foo); foo.prependChild(<b>bbb</b>); trace(foo); var cNode:XML = <c>ccc</c>; foo.insertChildAfter(foo.b, cNode); trace(foo); var aNode:XML = <a>aaa</a>; foo.insertChildBefore(foo.b, aNode); trace(foo); |
1.如何使用双引号(..),访问当前元素的所有子元素
2.如何使用通配符(*)访问
3.如何使用表达式制定查找子元素的条件
4.如何使用标点制定查找属性的条件
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var kingdaXML:XML = 150000 100000 50000 //用法1:访问所有名为pageview的子节点,包括不同层次 trace(kingdaXML..pageview); //用法2:查找site子元素的属性,返回一个XMLlist对象,并用toXMLString()方法输出 trace(kingdaXML.site.@*.toXMLString()); //方法3:查找值小于100 000的pageview子元素 //这里100 000已被自动转换成数值类型 trace(kingdaXML.site.(pageview < 100000)); //用法4:查找site子元素中属性等于ActionScript 3的节点 trace(kingdaXML.site.(@name == "ActionScript 3")); |
AS3操作XML比AS2爽快的不是一个等级,不在需要写什么childNodes,也不需要什么Xpath…
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | //使用运算符访问XML子元素和属性 var kingdaXML:XML = <websites> <site name="kingda's blog" url="http://www.design-studio.cn/"> <pageview>100</pageview> </site> <site name="actionScript 3" url="http://www.actionscript3.cn/"> <pageview>200</pageview> </site> </websites> trace(kingdaXML.site.pageview); trace(kingdaXML.site); trace(kingdaXML.site[0]); trace(kingdaXML.site[1]); trace(kingdaXML.site.@name); trace(kingdaXML.site.@name[0]); //使用“.”与@直接修改XML对象 kingdaXML.site[0].pageview = 200000; trace(kingdaXML.site[0]); kingdaXML.site[0].@name = "Kingda's first blog"; trace(kingdaXML.site[0]); //使用“.”与@直接添加子元素和属性 kingdaXML.site[0].author = new XML(); //添加一个空白节点 kingdaXML.site[0].location = "Hangzhou, China";//以字符串添加一个子节点 kingdaXML.site[0].weekvisit = [1000,2000,3000,4000];//用数组添加一个子节点 kingdaXML.site[0].@language = "Chinese"; trace(kingdaXML.site[0]); //使用“.”与@删除子元素和属性 delete kingdaXML.site[0].author; delete kingdaXML.site[0].location; delete kingdaXML.site[0].weekvisit; delete kingdaXML.site[0].@language; trace(kingdaXML.site[0]); |
为了便于测试代码,可以注释掉部分代码