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

【转】AS3操作XML,增加、删除、修改的更多相关文章

  1. 在Javascript操作JSON对象,增加 删除 修改

    在Javascript操作JSON对象,增加删除修改全有的,详情见代码 <script type="text/javascript"> var jsonObj2 = { ...

  2. Nodejs之MEAN栈开发(九)---- 用户评论的增加/删除/修改

    由于工作中做实时通信的项目,需要用到Nodejs做通讯转接功能,刚开始接触,很多都不懂,于是我和同事就准备去学习nodejs,结合nodejs之MEAN栈实战书籍<Getting.MEAN.wi ...

  3. AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层

    AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层 AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层我理解的图层的作用大概是把 ...

  4. [JavaWeb基础] 004.用JSP + SERVLET 进行简单的增加删除修改

    上一次的文章,我们讲解了如何用JAVA访问MySql数据库,对数据进行增加删除修改查询.那么这次我们把具体的页面的数据库操作结合在一起,进行一次简单的学生信息操作案例. 首先我们创建一个专门用于学生管 ...

  5. .net操作xml文件(新增.修改,删除,读取) 转

    今天有个需求需要操作xml节点.突然见遗忘了许多.上网看了些资料.才整出来.脑袋真不够用.在这里把我找到的资料共享一下.方便以后使用.本文属于网摘/ 1 一.简单介绍2 using System.Xm ...

  6. .net操作xml文件(新增.修改,删除,读取)---datagridview与xml文件

    参考网址: http://www.cnblogs.com/liguanghui/archive/2011/11/10/2244199.html 很详细的,相信能给你一定的帮助.

  7. javascript操作JSON对象,增加 删除 修改

    JS只能输入数字,数字和字母等的正则表达式 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace( ...

  8. ztree树形菜单的增加删除修改和换图标

    首先需要注意一点,如果有研究过树形菜单,就会发现实现删除和修改功能特别简单,但是增加却有一点复杂.造成这个现象是ztree树形菜单的历史遗留问题.大概是之前的版本没有增加这个功能,后来的版本加上了这个 ...

  9. Sql增加,删除,修改列

    1. 查看约束条件 - MySQL: SELECT * FROM information_schema.`TABLE_CONSTRAINTS` where table_name = 'book'; - ...

随机推荐

  1. C#委托简介

    C#中委托是一种引用类型,该引用类型与其他引用类型不同,在委托对象的引用中存放的不是对数据的引用而是存放对方法的引用,即委托的内部包含一个指向某个方法的指针.通过使用委托把方法的引用封装在委托对象中, ...

  2. apache的用户认证

    1. 限制用户访问的方式: 1. 限制访问服务的客户端主机 2. 需要用户名和密码 2. 行为用户验证需要两步: 1. 创建一个包含用户名和密码的文件 2. 服务器上的哪些资源需要保护,哪些用户可以进 ...

  3. win8下 msvcr100d.dll文件缺失解决方法

    一.如果在运行某软件或编译程序时提示缺少.找不到msvcp100d.dll等类似提示,您可将从载来的msvcp100d.dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或 ...

  4. 如何用js实现自适应,原来只是几行代码的事(╯‵□′)╯︵┻━┻

    在javascript写下如下几行:   (function (doc, win, undefined) {            var docEl = doc.documentElement,   ...

  5. BZOJ 1050: [HAOI2006]旅行comf (并查集 或 单调队列)

    这是建空间后做的第一道题啊= =好水 排序,枚举最小边,然后并查集求出联通时的最大边 或者排次序,从小到大插边,如果插边时最小的边拿掉不会使s与t不联通,就删去。 code: #include< ...

  6. 【android】简易实现横向的ListView

    众所周知,android里面的ListView是竖着的. 如果想要横向的话需要自定义一下ListView. CSDN上面有个人描述了一下一个国外大神的自定义横向ListVIew  请点击 --> ...

  7. 第十四篇 SQL游标、函数的使用方法

         游标的的使用有日常的开发和维护的过程不使用的并不多,但是碰到一些棘手的问题的时候,游标时常是个非常好的帮手,下面就说下游标的使用方法,方法自己以后查阅,和加深一些印象,下面以一个存储过程为例 ...

  8. 一道面试题引发的pythonic

    一道测试工程师面试题(来自搜狗): 自己写了解法: # -*- coding: utf-8 -*- import re #从整体log中过滤出有用的部分,缩小搜索范围 def filter_log(t ...

  9. 用tp框架来对数据库进行增删改

    先来看添加 使用tp框架,对数据库进行添加操作,都有哪些方法 先在Main控制器中,做个方法 运行一下,注意地址,就要输tianjia了 然后再看一下数据库,有没有添加上数据 添加成功 再来看一下这个 ...

  10. Cesium原理篇:3D Tiles(2)数据结构

    上一节介绍3D Tiles渲染调度的时候,我们提到目前Cesium支持的Cesium3DTileContent目前支持如下类型: Batched3DModel3DTileContent Instanc ...