1.7 在Flex中操作XML

 

1.7  在Flex中操作XML

XML(eXtensible Markup Language,可扩展标记语言)常用于数据描述、数据封装和数据结构化处理。XML提供了简单和易读的数据组织方式,可以更加方便和标准地对数据进行读取、传输和操作。Flex技术中使用的MXML也是基于XML的一种标签规范。

1.7.1  XML在Flex中的应用

在Flex中处理XML数据需要理解一些基本的XML概念。在本书中会涉及到的XML概念如下。

1. 元素

元素是XML数据中的一个数据条目,通过一对标签和标签内的子元素定义。XML的元素中可以包含文本数据或其他的元素,也可以为空。

2. 空元素

空元素是不包含子元素的XML元素。通常XML的空元素可以写成自封闭的格式,例如<emptyitem/>。

3. 文档

文档是一个独立的XML结构。一个XML文档可以包含任意数量的XML元素,但是必须只包含唯一的根元素。

4. 节点

节点和元素的意义相同。

5. 属性

属性是对标签内的一个XML元素条目的命名。通过 属性名=“值”的格式进行定义。可以看作是位于元素内部的子元素。

Flex为处理XML提供了必要的支持,ActionScript类XML和XMLList用于建立Flex的XML对象。XML类用于描述单一的XML对象,如XML的一个节点数据以及这个节点的所有Attribute值和下级节点信息;XMLList类用于描述一组XML元素,这组元素需要有相同的XML标签,通过XMLList可以灵活地对XML元素集合进行添加、删除、修改和查询操作。

通过MXML我们可以使用<mx:XML>标签和<mx:XMLList>标签构造静态的XML结构。ActionScript则可以对MXML的静态XML对象或外部文档进行各种数据处理操作,对于大部分XML数据的处理操作都是通过ActionScript完成。

通常ActionScript可以完成下列关于XML的操作:

  • 构建XML文档,添加XML元素和值。
  • 访问XML元素,属性(Attribute)和值。
  • 查询XML元素。
  • 遍历XML数据的集合。
  • 进行XML类型和String类型的相互转换。
  • 操作XML命名空间。
  • 读取外部的XML文件。

1.7.2  通过E4X处理XML

我们已经了解到ActionScript是基于标准的ECMAScript语言规范构建的,因此也沿袭了ECMAScript处理XML的API子集ECMAScript for XML,简称E4X。E4X包含下列类型用于处理XML:XML、XMLList、QName和Namespace。

1. 创建E4X的XML对象

E4X对于XML的支持遵循着简洁性、高聚合性和易用性的设计原则。因此使用E4X并没有很高的难度。首先我们来看看如何用E4X创建XML类型:

var xmlData:XML =
<product>
<item id = "0001">
<name>Thinkpad</name>
<price>24000</price>
</item>
<item id = "0001">
<name>Thinkpad</name>
<price>24000</price>
</item>
</product>

上述代码创建了一个变量名为xmlData的E4X的XML对象。构建方式是非常简单的,和定义一个简单类型的变量没有任何区别,直接把XML的内容按顺序写在等号右边即可,E4X会在编译ActionScript时对XML的合法性进行验证,不合法的XML会在编译过程中报错。

2. 操作E4X的XML类型

E4X的XML对象描述了XML的数据结构、节点、文本节点、属性/属性值、操作指令、注释信息等内容。不包含操作指令和注释信息的XML对象被定义为简单XML对象,在构建XML对象时,可以通过设定下列语句来实现简单对象的创建:

XML.ignoreComments = true;
XML.ignoreProcessingInstructions = true;

包含操作指令和注释信息的XML对象被定义为复杂XML对象,可以通过comments()方法和processingInstructions()方法来处理注释和操作指令内容。

包括上述两个属性,E4X的XML对象共包含5个静态属性,用于初始化设定或定制操作XML的具体格式。属性列举如下。

  • ignoreComments:
    该属性用于指定是否处理XML注释。
  • ignoreProcessingInstructions:
    该属性用于指定是否处理XML操作指令。
  • ignoreWhitespace:
    该属性用于指定是否处理XML中的空格符。
  • prettyIndent:
    该属性用于指定对toString()方法是否进行适当缩进。
  • prettyPrinting:
    该属性用于指定对toXMLString()方法是否进行适当缩进。

XML对象结构的解析和处理通过E4X的方法来实现。E4X为XML对象提供了非常完善的方法支持。通过children()、elements()、parent()方法可以引用到XML对象之中的XMLList对象。本书中对E4X的具体API不详细讲解,读者如有需要可参考ECMA357用户手册。

3. 操作E4X的XMLList类型

XMLList类型表明这是一个具有相同结构的XML元素集合。XMLList对象同样支持children()、elements()、parent()等针对上下级节点的索引。同时,XMLList对象还支持attribute()、attributes()方法来操作自身的属性信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值