- 浏览: 330761 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangjun0603:
学习了,写的真好!
native2ascii的简单应用 -
qq672076266:
...
native2ascii的简单应用 -
loyalboys:
...
native2ascii的简单应用 -
hanjinting1004:
...
Flex开发者需要知道的10件事 -
管好你家猫:
学了,文章,
native2ascii的简单应用
XML 是一种结构化的描述数据形式,因其简单,灵活,尤其是在数据交换和可移植等优点现
已成为事实上的工业标准。
ActionScript 3.0 新增了新的操作XML的语法,即ECMAScript for XML,也叫E4X,提供一种比
Document Object Model (DOM)更简单更容易访问XML的新方式。使用E4X,你会发现操作XML
比以前更简单了
ActionScript 3.0 包含一些用于处理 XML 结构化信息的类。下面列出了两个主类:
■ XML:表示单个 XML 元素,它可以是包含多个子元素的 XML 文档,也可以是文档中
的单值元素。
■ XMLList:表示一组 XML 元素。当具有多个“同级”(在 XML 文档分层结构中的相
同级别,并且包含在相同父级中)的 XML 元素时,将使用 XMLList 对象。例如,
XMLList 实例是使用以下一组 XML 元素(可能包含在 XML 文档中)的最简便方法:
<artist type="composer">Fred Wilson</artist>
<artist type="conductor">James Schmidt</artist>
<artist type="soloist">Susan Harriet Thurndon</artist>
技术名词:
XML document :
包含XML的文件,也指读取和发送XML的数据,XML文档的概念不要和XMLDocument类搞混。
XML包 :
一个XML包指从整个XML文档中取出的片断
XML 节点e :
XML最基本的块,节点可以是元素,文本节点,属性等等
XML 元素 :
这个术语和"Tag"意义类似,更确切地说,元素包含tags。元素必须有开始和结束标签
(<element></element>)或(<element />).
Root 节点 :
XML层级元素中最顶层的元素
Text 节点 :
包含文本的节点,一般都在元素里面
Attribute(属性):
元素的一部分,如<element name="value">,name="value"就是属性.
XML 声明 :
典型的申明如<?xml version="1.0" ?>.
XML 树 :
XML 数据的节点层级构成XML 树
可以通过{}创建动态xml
添加XML元素:
a:通过newElement属性来添加新的元素
var example:XML = <example />; example.newElement = <newElement />; /* 显示: <example> <newElement/> </example> */
b:用(.)运算符
var example:XML = <example />; example.emptyElement = ""; /* 显示: <example> <emptyElement/> </example> */
c:用([ 和])
var example:XML = <example />; var id:int = 10; example[ "user" + id ] = ""; /* 显示: <example> <user10/> </example> */
上述三种职能插入到尾部,可用insertChildBefore( )和insertChildAfter( ) 方法来控制插入的位置
var example:XML = <example/>; example.two = ""; example = example.insertChildBefore( example.two, <one /> ); example = example.insertChildAfter( example.two, <three /> ); /* 显示: <example> <one/> <two/> <three/> </example> */
在XML元素中添加属性 : 使用E4X的@ 操作符
var example:XML = <example><someElement/></example>; example.someElement.@number = 12.1; example.someElement.@string = "example"; example.someElement.@boolean = true; example.someElement.@array = ["a", null, 7, undefined, "c"]; /* 显示: <example> <someElement number="12.1" string="example" boolean="true" array="a,,7,,c"/> </example> */
但是有时如果属性名包含一些特殊符号,则不能用@操作符,必须加上[]操作符
example.someElement.@["bad-variable-name"] = "yes";
在[]里还可用表达式产生动态属性名,这是种很实用的技巧:
example.someElement.@["color" + num] = "red";
读取XML树中的元素 :
使用elements( ) 方法返回XMLList 类型的所有元素,并用for each 循环遍历
var menu:XML = <menu> <menuitem label="File"> <menuitem label="New"/> </menuitem> <menuitem label="Help"> <menuitem label="About"/> </menuitem> This is a text node </menu>; for each ( var element:XML in menu.elements( ) ) { /* 显示: File Help */ trace( element.@label ); }
elements( ) 方法只返回下一级的子元素节点,这里面不包括文本节点和下一级节点.要向访问整个XML结构,还需进行递归循环处理
var menu:XML = <menu> <menuitem label="File"> <menuitem label="New"/> </menuitem> <menuitem label="Help"> <menuitem label="About"/> </menuitem> This is a text node </menu>; /* 显示: File New Help About */ walk( menu ); function walk( node:XML ):void { for each ( var element:XML in node.elements( ) ) { trace( element.@label ); // Recursively walk the child element to reach its children walk( element ); } }
通过节点名字来查找元素 : 直接使用E4X 的. 加上属性名语法来查找元素
var fruit:XML = <fruit><name>Apple</name></fruit>;
trace( fruit.name );// 显示: Apple
var author:XML = <author><name><firstName>Darron</firstName></name></author>;
trace( author.name.firstName );// 显示: Darron
还有种简便的方法,即使用双点操作符(..)来跳过一级访问,如:
var author:XML = <author><name><firstName>Darron</firstName></name></author>;
trace( author..firstName );// 显示: Darron
当有多个元素节点具有相同名称时,可通过索引值访问,这有点像数组,使用中括号
var items:XML = <items> <item> <name>Apple</name> <color>red</color> </item> <item> <name>Orange</name> <color>orange</color> </item> </items>; trace( items.item[0].name );// 显示: Apple trace( items.item[1].name );// 显示: Orange
元素节点,但又不知道有多少个,可用for each 循环遍历
var items:XML = <items> <item> <name>Apple</name> <color>red</color> </item> <item> <name>Orange</name> <color>orange</color> </item> </items>; // 使用双点操作符 for each ( var name:XML in items..name ) { /* 显示: Apple Orange */ trace( name ); }
也可用[]操作符来访问:
var nodeName:String = "color";
var fruit:XML = <fruit><color>red</color></fruit>;
trace( fruit[nodeName] );// Displays: red
需要注意的是[]操作符不能和双点操作符一起用
trace( fruit..[nodeName] ); // 导致编译错误
text( ) 方法可正确返回文本节点内容:
var fruit:XML = <fruit> <name>Apple</name> An apple a day... </fruit>; for each ( var textNode:XML in fruit.text( ) ) { trace( textNode );// 显示: An apple a day... }
读取元素的属性 :
使用attributes( ) 方法返回指定元素的属性列表,或者通过名称用E4X的@操作符或attribute( )
var fruit:XML = <fruit name="Apple" color="red" />; var attributes:XMLList = fruit.attributes( ); trace( attributes[0] );// 显示: Apple trace( attributes[1] );// 显示: red
name( ) 方法可显示出属性名
var fruit:XML = <fruit name="Apple" color="red" />; for each ( var attribute:XML in fruit.attributes( ) ) { trace( attribute.name( ) + " = " + attribute.toString( ) ); /* 显示: name = Apple color = red */ }
如果属性名含有特殊字符,可用[]进行访问
使用delete 关键字删除元素,文本节点和属性 ;delete只能一次删除一个节点,如果要删除多个节点,可通过for循环进行删除
摘自cookbook
发表评论
-
应用避免访问浏览器缓存
2011-05-12 17:33 1328项目经常遇到这么个问题:程序做了改动之后,由于浏览 ... -
flex皮肤资源
2011-05-05 15:28 1277如果要找flex皮肤,这里的皮肤真是多。http: ... -
flex利用asdoc生成doc和制作chm
2011-04-02 17:33 1605How to set up ASDoc in Flex Bui ... -
restrict的应用实例
2011-04-02 11:54 10991. 限制某个字符的输入,用符号 ^ 跟上要限制的 ... -
flex中as、instanceof、is、 typeof用法
2011-03-24 09:48 4529“as” 我主要用它做类型转化 假设有一个类叫做 ... -
在Chart上画平均线的三种方法
2011-02-16 14:52 1391在Chart上画平均线的三种方法 ... -
Flex Frameworks
2010-11-12 15:32 975Some say that if a t ... -
flex4国际化
2010-11-11 16:56 2095国际化变得如此简单 <?xml versi ... -
使用ToolTipManager自定义tooltip
2010-11-05 14:52 2589直接贴代码,一看就懂。 <?xml version=& ... -
flex 校验
2010-11-05 14:41 1005①flex中的校验可以使用mx.validator ... -
Flex中的fx、mx和s命名空间
2010-11-05 13:12 3345Flex 4带给我们的 ... -
socket中writeUTF和writeUTFBytes的区别
2010-11-03 10:25 2770Q:用writeUTF发送数据的时候,后台多 ... -
修改flex默认loading
2010-10-18 13:51 2488一: SWF Flex 2 PreloaderSWF ... -
AIR文件操作
2010-09-26 10:01 2883AIR文件操作(一):AIR文件基础 AI ... -
ActionScript 3.0 Socket编程
2010-09-17 17:25 1147在使用ActionScript3.0进行编程的时候需要注 ... -
as 对象深度拷贝
2010-08-20 10:32 960这是一篇关于as3中对象深度拷贝的问题今天自己总结下,便 ... -
Create a FlexUnit TestCase
2010-04-29 20:34 1007Problem How to create a Fle ... -
as3corelib
2010-04-29 20:10 1463google code :http://code. ... -
FusionCharts
2010-04-28 19:26 2344无意中接触到这个产品FusionCharts,3D ... -
flex datagrid自动换行
2010-04-19 17:10 2860以为datagrid的自动换行有多复杂,其实 ...
相关推荐
flex xml 生成 tree 的详细源码 。还有解说
flex xml 生成
This is a Flex UIComponent that can be used 谋n a FLEX 3 mxml application as component written in action script 3.0, provides you to create items that cab be filled from an XML or Query ResultSet or ...
很久以前的东西了,那时候刚接触flex,很久没动过flex了,也不知道此程序是否能运行 我的新博客http://www.cakesns.cn
通过Httpserver与读取本地XML文件
Flex与JSON及XML的互操作,一篇Info的文章。
Sas Jacobs, "Foundation XML and E4X for Flash and Flex" friends of ED | 2009-01-01 | ISBN: 1430216344 | 520 pages | PDF | 5,5 MB XML is the lingua franca of the Web. All designers and developers ...
flex读取xml文件的数据的三种方式及其比较
flex 的xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作
flex解析xml
Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex
使用httpService通过xml传递对象的时候,用于flex端解析xml的实例。
flex 读XML 写XML 并保存为xml文件,由图生成Xml文件,由XMl文件生成图
flex解析xml实例,可读取xml标签来获取信息,并附表情
Flex之URLLoader加载XML 使用URLLoader加载XML
flex 解析xml文件,利用httpservice读取xml文件,按要求过滤字符串,获取对应的值
这是使用flex解析xml文件,并将xml文件的内容作为ComboBox下拉列表的数据提供源
Flex读取XML不刷新问题
flex 操作xml 实现增删改查flex 操作xml 实现增删改查flex 操作xml 实现增删改查flex 操作xml 实现增删改查flex 操作xml 实现增删改查
flex中经常需要xml格式的文件。通过后台asp.net的处理可以将数据库中读取的文件转化为xml格式。这是再传递给前端的flex中的tree控件作为数据源。