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 常用操作的更多相关文章

  1. C# 对Xml的常用操作

    using System.Xml;  //初始化一个xml实例   XmlDocument xml=new XmlDocument(); //导入指定xml文件  xml.Load(path);   ...

  2. TinyXml 操作XML 常用操作

    源代码下载:http://sourceforge.net/projects/tinyxml/files/ 如下是一个XML片段:    <Persons>        <Perso ...

  3. SQL Server对Xml字段的操作

    T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...

  4. (转)SQL对Xml字段的操作

    T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...

  5. Hadoop HDFS文件常用操作及注意事项

    Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...

  6. SQL对Xml字段的操作

    转:http://www.cnblogs.com/youring2/archive/2008/11/27/1342288.html T-Sql操作Xml数据 一.前言 SQL Server 2005 ...

  7. Linux常用操作练习

    Linux常用操作练习 练习一:安装CentOS 1.设置为1G内存(才有图形界面).10G硬盘 2.分给交换分区2G(4G一下2G,8G-32G分4G-8G) 练习二:安装CentOS迷你版 1.安 ...

  8. dom4j解析XML的CURD操作

    在开发JavaWeb项目中通常是利用XML配置文件来提高应用程序的访问效率,而在配置XML的同时,更多时候是对XML进行解析. 一.解析XML配置文件有两种机制: DOM和SAX的机制: DOM是将整 ...

  9. fiddler常用操作

    fiddler常用操作 标签(空格分隔): fiddler fidrdler抓取https请求: fiddler是一个很好的抓包工具,但是默认的是抓取HTTP的,对于pc的https的会提示网页不安全 ...

随机推荐

  1. 洛谷—— P2896 [USACO08FEB]一起吃饭Eating Together

    https://www.luogu.org/problem/show?pid=2896 题目描述 The cows are so very silly about their dinner partn ...

  2. 设置Webdriver启动chrome为默认用户的配置信息

    Webdriver 启动Chrome浏览器时,默认是打开一个新用户,而非默认用户.即新用户没有我们安装扩展程序.但在实际应用中,我们会须要 默认用户安装的一些扩展程序,比方对于某些js或者css样式. ...

  3. java中多线程知识

    参考:http://www.cnblogs.com/wxd0108/p/5479442. 引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只 ...

  4. h5 离线存储

  5. SPOJ1812: LCS2 - Longest Common Substring II & BZOJ2946: [Poi2000]公共串

    [传送门:SPOJ1811&BZOJ2946] 简要题意: 给出若干个字符串,求出这些字符串的最长公共子串 题解: 后缀自动机 这两道题的区别只是在于一道给出了字符串个数,一个没给,不过也差不 ...

  6. 远程登录工具 —— filezilla(FTP vs. SFTP)、xshell、secureCRT

    filezilla:是一个免费开源的 FTP 软件,分为客户端版本和服务器版本,具备所有的 FTP 软件功能. 支持的协议:FTP & SFTP(Secure File Transfer Pr ...

  7. [USACO09JAN] 气象测量/气象牛The Baric Bovine 解题报告(DP)

    题目链接:https://www.luogu.org/problemnew/show/P2933 Description 为了研究农场的气候,Betsy帮助农夫John做了N(1 <= N &l ...

  8. BZOJ 3130 二分+网络流

    思路: 不被题目忽悠就是思路 二分一下max 判一下等不等于最大流 搞定 7 9 1 1 2 3 1 3 3 2 3 3 3 4 2 3 5 2 3 6 1 4 7 2 5 7 2 6 7 2 这里有 ...

  9. jquery easyui ajax data属性传值方式

    $.ajax({   url:url,   type:'post',   data:data,   dataType:'json',   contentType: "application/ ...

  10. MFC 创建新项目

    本文主要介绍如何是使用vc++创建MFC项目,并简单介绍整个项目的基本框架.文件–>新建,会弹出以下新建文件(项目)类型的界面,如下 按上图的步骤u,创建一个MFC工程.其中步骤3中的CardD ...