Flex XML/XMLList 常用操作
1 XML、XMLList操作
Flex对xml提供了很多强大而灵活的操作。相对于其他语言,flex对xml的格式要求不那么苛刻,只要符合基本格式语法的字符串,flex能非常简单的转换成xml操作。
而实际上,xml是一种非常方便的层次数据描述格式。
1.1 XML和XMLList的关系
XML的很多操作最终都是通过XMLList对象来实现的。
XML是一个节点,XMLList是一组节点。
XML的字节点、属性节点在flex中均通过XMLList来描述。
1.2 创建XML/XMLList对象
as支持直接xml语法定义。
var xml:XML = <root><node title="newnode"/></root>;
也可将xml格式的字符串直接转成xml对象
var xml:XML = new XML("<root/>");
xml、xmllist对象均可通过toXMLString()转成格式化的xml字符串。
1.3 向XML节点新增子节点
1.通过appendChild方法,将新节点增加到现有子节点的最后
2.通过insertChildAfter方法,将新节点添加到指定字节点之后;
3.通过insertChildBefore方法,将新节点添加到指定字节点之强。
如:var x:XML = new XML(<r />); //新建一个节点
x.@title = " index is:"+String(xml.children().length()); //为节点添加一个title属性
xml.appendChild( x ); //将新节点添加到当前节点的子节点的最后位置。
1.4 删除子节点
XML节点的删除操作通过 delete 操作符实现,支持按条件删除
1.删除第n个子节点:delete xml.children[n];
2.删除符合条件的子节点: delete xml.children()(@type == “car” && @color == “red”);
xml = <vehicles>
<vehicle type=”car” color=”yellow”/>
<vehicle type=”truck” color=”gray”/>
<vehicle type=” truck” color=” gray”/>
<vehicle type=”car” color=”red”/>
<vehicle type=”car” color=”red”/>
<vehicle type=”car” color=”black”/>
</vehicles>;
3.删除所有字节点:delete xml.*;
4.删除已知子节点node; delete xml.children[node.childIndex()];
1.5 查询子节点
查询属性值符合条件的字节点:var children = xml.children().(@propertyname==”value” ) 可以通过 && () ||进行条件组合
遍历子节点,可递归访问所有字节点。
for each(var child:XML in xml.children()){
child…
}
1.6 访问节点属性
通过@操作符进行属性的读写,如:
xml.@title = “asdfasdf”; Alert.show(xml.@title);
还可以通过[]访问节点属性,如:
xml[“@title”] = “asdfasdfasdf”; Alert.show(xml[“@title”]);
1.7 测试代码(flashbuilder4.5)
html] view plaincopyprint?
<s:NavigatorContent xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx=">
<s:layout>
<s:VerticalLayout paddingBottom="/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
[Bindable]
private var xml:XML = <root>
<r title="package1"/>
<r title="package2"/>
</root>;
[Bindable]
private var xmllist:XMLList = xml.children();
private function appendToXML():void{
var x:XML = new XML(<r title="diagram"/>);
x.@title = "package"+String(xml.children().length());
xml.appendChild( x );
xmltxt.text = xml.toXMLString();
xmllisttext.text = xmllist.toXMLString();
}
private function deleteXMLNode():void{
];
if( !x ) return;
delete xml.children()[x.childIndex()];
xmltxt.text = xml.toXMLString();
xmllist = xml.children();
xmllisttext.text = xmllist.toXMLString();
xmltxt.text += "\n\n"+ x.toXMLString() +"has be deleted!";
}
private function queryChild():void{
queryResult.text = xml.children().(@title=="package2" || @title=="package3").toXMLString();
}
]]>
</fx:Script>
<s:HGroup verticalAlign="middle">
<s:Label text="XML contant"/>
<s:Button label="append to XML" click="appendToXML()"/>
<s:Button label="delete from 0" click="deleteXMLNode()"/>
<s:Button label="delAllChild" click="delete xml.*; xmltxt.text = xml.toXMLString();"/>
<s:Button label="queryChild" click="queryChild()"/>
</s:HGroup>
<s:TextArea text=" height="100%"/>
<s:Label text="XMLList contant"/>
<s:TextArea text=" height="100%"/>
<s:Label text="QueryResult"/>
<s:TextArea id=" height="100%"/>
</s:NavigatorContent>
Flex XML/XMLList 常用操作的更多相关文章
- C# 对Xml的常用操作
using System.Xml; //初始化一个xml实例 XmlDocument xml=new XmlDocument(); //导入指定xml文件 xml.Load(path); ...
- TinyXml 操作XML 常用操作
源代码下载:http://sourceforge.net/projects/tinyxml/files/ 如下是一个XML片段: <Persons> <Perso ...
- SQL Server对Xml字段的操作
T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...
- (转)SQL对Xml字段的操作
T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...
- Hadoop HDFS文件常用操作及注意事项
Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...
- SQL对Xml字段的操作
转:http://www.cnblogs.com/youring2/archive/2008/11/27/1342288.html T-Sql操作Xml数据 一.前言 SQL Server 2005 ...
- Linux常用操作练习
Linux常用操作练习 练习一:安装CentOS 1.设置为1G内存(才有图形界面).10G硬盘 2.分给交换分区2G(4G一下2G,8G-32G分4G-8G) 练习二:安装CentOS迷你版 1.安 ...
- dom4j解析XML的CURD操作
在开发JavaWeb项目中通常是利用XML配置文件来提高应用程序的访问效率,而在配置XML的同时,更多时候是对XML进行解析. 一.解析XML配置文件有两种机制: DOM和SAX的机制: DOM是将整 ...
- fiddler常用操作
fiddler常用操作 标签(空格分隔): fiddler fidrdler抓取https请求: fiddler是一个很好的抓包工具,但是默认的是抓取HTTP的,对于pc的https的会提示网页不安全 ...
随机推荐
- MYSQL锁表问题的解决方法
本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 mysql>show processlist; 参看sq ...
- 国庆 day 2 下午
最大值(max) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一本书,上面有很多有趣的OI问题.今天LYK看到了这么一道题目: 这里有一个长度为n的 ...
- DNS解析污染原理——要么修改包,要么直接丢弃你的网络包
DNS/域名解析 可以看到dns解析是最初的一步,也是最重要的一步.比如访问亲友,要知道他的正确的住址,才能正确地上门拜访. dns有两种协议,一种是UDP(默认),一种是TCP. udp 方式,先回 ...
- C# Hook
C# Hook原理及EasyHook简易教程 前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实 ...
- Mysql优化ibdata1大小
在MySQL数据库中,如果不指定innodb_file_per_table参数来单独存在每个表的数据,MySQL的数据都会存放在ibdata1文件.mysql ibdata1存放数据,索引等,是MYS ...
- codeforces 445 B DZY Loves Chemistry【并查集】
题意:给出n种化学物质,其中m对会发生化学反应,每次加入化学物质进去的时候, 如果有能够和它发生反应的,危险值就乘以2,问怎样的放入顺序使得危险值最大 将这m对会反应的用并查集处理,统计每个连通块里面 ...
- vue实现文字上下滚动
实现文字的上下滚动使用positon的relative的top属性,通过动态改变top来实现相关内容的更换,通过transion来实现相关的动画效果, 相关的dom内容 <template> ...
- CSS 制作 圆角TAB选项卡下拉效果(顺便学习CSS伪元素
CSS伪元素: 伪元素如果没有设置“content”属性,伪元素是无用的. 使用伪元素插入的内容在页面的源码里是不可见的,只能在css里可见 插入的元素在默认情况下是内联元素(或者,在html5中,在 ...
- Python学习七步走
在周五的下午三点钟(为什么是这个时间?因为事情总会在周五下午三点钟发生),你收到一条通知,客户发现你的软件出现一个错误.在有了初步的怀疑后,你联系运维,查看你的软件日志以了解发生了什么,因为你记得收到 ...
- users---显示当前登录系统的所有用户的用户列表
users命令用于显示当前登录系统的所有用户的用户列表.每个显示的用户名对应一个登录会话.如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数. 语法 users(选项) 选项 --help: ...