
var i:Number=0;//用于下面循环 var webcontent:String="Sontin's Blog <b>Welcome to 终吾一生</b>"; var myXML:XML=<websites> <site name="Sontin's Blog" url="http://www.ldyy8.com"> <description>{webcontent}</description> <pagebyte>1000</pagebyte> </site> <site name="百度" url="http://www.baidu.com"> <description>百度一下,就知道</description> <pagebyte>500</pagebyte> </site> <site name="谷歌" url="http://www.google.com"> <pagebyte>100</pagebyte> </site> </websites>; trace("--------------------------初始XML--------------------------------------"); trace(myXML); //先查找吧,下面操作都让XML变样了。 trace("--------------------------查找一--------------------------------------"); //双点号(..),又称为后裔访问符(the descendent accessor),访问当前元素的所有子元素 trace("找到[description]个数:"+myXML..description.length()); trace(myXML..description); //myXML.site[0]..description; 这样同样正常的 trace("--------------------------查找二--------------------------------------"); //通配符(*) trace("通配符:"+myXML.site[0].@*.toXMLString()); //查第一个节点的所有属性 trace("site节点的所有属性:"); trace(myXML.site.@*.toXMLString()); //查所有 site节点的所有属性 trace("--------------------------查找三--------------------------------------"); //大于 >,小于<,等于 == (双等哦,要不变修改了) trace(myXML.site.(pagebyte==500)); trace(myXML.site.(pagebyte>500)); //**必须每个site节点下都有pagebyte元素 //把中间的括号去了看看,会有新发现哦。 trace("--------------------------查找四--------------------------------------"); //查属性 trace(myXML.site.(@name=="谷歌")); //**必须每个site节点下都有name属性 trace("--------------------------查找五,正则--------------------------------------"); trace(myXML.site.(pagebyte.match(/^1\d+/))); //查找pagebyte第一个字符是 1的 trace("name中第一个字母是S的:"+myXML.site.(@name.match(/^S\w+/))); //**必须每个site节点下都有pagebyte元素,正则我也不太会用基础的表示一下好了。呵呵 //添加 myXML.site[0].author=new XML();//添加一个空白节点(其实不用new也同样可以执行添加) myXML.site[0].author.@name="子锡";//添加一个属性 myXML.site[0].author.@email="sontin@qq.com";//添加邮箱属性 myXML.site[0].author.school="社会大学";//添加一个子节点 //还有一些API 这就不提了,主要也就4项 /* appendChild(child:Object):XML 在当前子元素列表之后添加 prependChild(child:Object):XML 在当前子元素列表之前添加 insertChildAfter(child1:Object,child2:Object):* 在子元素child1之后添加 insertChildBefore(child1:Object,child2:Object):* 在子元素child1之前添加 */ //修改 myXML.site.description[0]=myXML.site.description[0]+" 摆正心态,做好自己。"; myXML.site.@name[1]=myXML.site.@name[1]+"一下"; //删除(很简单,其实就是修改) delete myXML.site[1].@url; //删除节点属性 delete myXML.site[1].description; //删除节点指定子元素 //myXML.site[1]="";//删除其下所有子节点(元素) //delete myXML.site[1];//删除该节点,包括其下子节点(元素) //myXML=null; //删除整个XML呢?null就好了,但下面要判断哦; if (myXML!=null) { trace("----------------------显示指定节点内容,没有输出空串--------------------------"); trace(myXML.site.description[0]); trace(myXML.site[0].description);//建议 trace("---------------------循环显示site-------------------------------------------"); //.length()为统计个数 for (i=0; i<myXML.site.length(); i++) { trace("第" + i + "个:" + myXML.site[i]); } trace("----------------------循环显示site.name------------------------------------------"); trace(myXML.site.@name); //.length()为统计个数 for (i=0; i<myXML.site.@name.length(); i++) { trace("第" + i + "个name:" + myXML.site.@name[i]); } //这样也可以(建议使用,这样更能体现对象的意义) trace("---这样也可以:"); for (i=0; i<myXML.site.length(); i++) { trace("第" + i + "个name:" + myXML.site[i].@name); } trace("--------------------------最终的site--------------------------------------"); trace(myXML.site); trace("--------------------------最终的XML--------------------------------------"); trace(myXML); }
原文链接:http://bbs.9ria.com/blog-229904-21550.html