博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
as3 操作xml
阅读量:6261 次
发布时间:2019-06-22

本文共 2681 字,大约阅读时间需要 8 分钟。

引用:http://songwensheng.iteye.com/blog/644360

示例如下:Tree.mxml:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx=""  creationComplete="menu.send();"  layout="absolute">
 <mx:Script>
  <![CDATA[
  import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
   [Bindable]
private var myData:ArrayCollection;
private var menus2:XML;
private var results:XMLList;
private function resultHandler(event:ResultEvent):void {
  menus2 = XML(event.result);
  //proto子节点(即Field节点)xml对象的集合
  var list:XMLList = menus2.packet.proto.children();
  //删除hide的节点
  for(var i:int=0;i<list.length();i++) {
   if(") {
    delete list[i];//删除field中属性hide的field节点
    Alert.show("del");
   }
//   if(") {//原始操作方法
//    delete menus2.packet.proto.field[i];//删除节点
//   }
     //位于列表下第三个对象是否有showname属性
 var li:XMLList = list[i].attribute("showname");
    if(li.length()==0) {//没有showname属性
    //添加一个showname属性值是show的值
    list[i].@showname=list[i].@show;
     }
  }
  //增加属性
  //menus2.packet.proto.field[0].@hello="helloword";
 
  var results:XMLList = menus2.packet.proto;
  Alert.show(results);
  //将集合绑定到tree上
  treeMenu.dataProvider = results;
}
private function modify():void {
 delete menus2.packet.proto.field;
 Alert.show(menus2.packet.proto.toString());
}
  ]]>
 </mx:Script>
<mx:HTTPService id="menu" url="erb2.xml" result="resultHandler(event)" resultFormat="xml" />
<mx:Tree id="treeMenu" labelField="@showname" width="50%" height="100%">
</mx:Tree>
<mx:Button label="修改" click="modify()" x="427" y="53"/>
</mx:Application>

xml文件内容为:erb2.xml:

<?xml version="1.0"?>

<pdml version="0" creator="wireshark/1.0.8">
<packet>
  <proto name="geninfo" pos="0" showname="General information" >
    <field name="num" pos="0" hide="yes" show="1" showname="Number" value="1"/>
    <field name="len" pos="0" show="115" showname="Packet Length"/>
    <field name="len" pos="0" show="noshowname"/>
  </proto>
</packet>
</pdml>

首先是修改:

修改XML节点其实比较简单,创建XML对象后,直接调用如下的方法:

A.insertChildBefore(a,b);//在a节点前插入b节点

A.insertChildAfter(a,b);//在a节点之后插入b

A.appendChild(a);//附加a文本子节点

A.prependChild(a);//把a加到前面

为a节点添加一个名为b的属性,其值为c

示例:(中间没有中断)

//创建XML

var A:XML=<a />;

//加入一个节点b

A.b=<b />;

//加入一个节点c,且值为11,如果存入数组,值为逗号隔开的文本,其中null,undefined将解析为空""

A.c="11";

//输出为:<a><b /><c>11</c></a>

trace(A);

//在c节点前插入一个<d />节点,insertChildAfter()等方法同理

A = A.insertChildBefore(A.c,<d />);

//输出内容:(略)

trace(A);

//添加属性

A.c.@e="true";

;

//输出内容:。。。

trace(A);

读取XML节点:

A.elements();//返回A节点下的所有元素

A.a;//返回A节点下的a节点的内容,如果有多个a节点,则使用a[n]来指定(n从0开始),返回后使用toString(),int(),Number()方法转换。

返回A节点的a属性的值,老方法attribute(a)还可以用~不过注意里面的a为属性名称~不过:

爆发吧~attribute用不着了~通配符*和@代替了。。。郁闷。。。

以上内容就不用示例了吧~~使用方法和写入方式类似~~~

 

删除:

使用关键字delete,后加个节点或属性或。。。的,就和读节点的方式一样就可以了。。。

例如:

//删除了A节点的a节点。。。

delete A.a;

//删除了A节点的b属性

delete ;

转载地址:http://hwzpa.baihongyu.com/

你可能感兴趣的文章
用PhoneGap创建第一个项目
查看>>
vue 2.0 开发实践总结之疑难篇
查看>>
iOS开发中的错误整理,(百思项目,指示器位置)设置控件尺寸和点坐标,先设置尺寸,再设置点坐标...
查看>>
(C/C++学习)7.数组及其访问方式
查看>>
LeetCode——Intersection of Two Linked Lists
查看>>
对拍——我目前可以找到的最简写法
查看>>
js之广告弹出自动关闭
查看>>
axios请求requestBody和formData
查看>>
PSQL_标准API和Interface基本的用法和比较(概念)
查看>>
网站目录
查看>>
APUE-文件和目录(七)符号链接
查看>>
CSS 简介
查看>>
System Verilog基础(二)
查看>>
2018/11/26 Samba服务器配置
查看>>
2018/12/08 PAT刷题 L1-034 点赞
查看>>
如何改变TextBox.PassWordChar的值 转
查看>>
css的工作原理
查看>>
【pip】的安装
查看>>
内存泄漏及其检测工具
查看>>
QT Model based vs Item based
查看>>