概览Flex中与XML相关的类和组件
MXML
组件
|
ActionScript
类
|
描述
|
<mx:XML>
|
XML
|
使用单个节点保存标准
XML
数据
|
<mx:XMLList>
|
XMLList
|
保存由多个根节点保存的
XML
数据
|
<mx:XMLListCollection>
|
XMLListCollection
|
具有集合
(collection)
能力的
XMLList
版本。
例如,当
XMLListCollection
的状态发生变化时,它可以调度相关事件。
|
XML组件
XML组件是用于与XML数据进行交互的基础机制。它允许你在你的程序代码中植入你的XML数据,或引用一个外部的XML源文件。但是,由于XML组件不是一个集合(collection)组件,所它不具有高级数据同步(绑定)和自动数据更新感知的能力。
使用XML组件
要实现XML组件,可以直接植入XML字面量来自外部文件的源代码。如下所示:
<
mx:Application
xmlns:mx
="http://www.adobe.com/2006/mxml"
>
< mx:XML id ="usersXML" >
< users >
< user id ="1" >Tariq Ahmed </ user >
< user id ="2" >Jon Hirschi </ user >
</ users >
</ mx:XML >
</ mx:Application >
< mx:XML id ="usersXML" >
< users >
< user id ="1" >Tariq Ahmed </ user >
< user id ="2" >Jon Hirschi </ user >
</ users >
</ mx:XML >
</ mx:Application >
<
mx:Application
xmlns:mx
="http://www.adobe.com/2006/mxml"
>
< mx:XML id ="usersXML" source ="users.xml" />
</ mx:Application >
< mx:XML id ="usersXML" source ="users.xml" />
</ mx:Application >
注意:这种引入将会在编译期把外部源文件中的代码合并到程序中,这意味着任何对外部XML源文件的改变将不会反射到程序中,除非重新编译程序。
XML类
XML类与XML组件类似,但有一点关键的不同之处,即不能让ActionScript的XML对象在编译器植入一个XML文件。
使用XML类
<
mx:Application
xmlns:mx
="http://www.adobe.com/2006/mxml"
>
< mx:Script >
<![CDATA[
public var usersXML:XML=
< users >
< user id ="1" >Tariq Ahmed </ user >
< user id ="2" >Jon Hirschi </ user >
</ users >
]]>
</ mx:Script >
</ mx:Application >
< mx:Script >
<![CDATA[
public var usersXML:XML=
< users >
< user id ="1" >Tariq Ahmed </ user >
< user id ="2" >Jon Hirschi </ user >
</ users >
]]>
</ mx:Script >
</ mx:Application >
这种做法与使用XML组件并无大异,但ActionScript可以灵活的被保存在外部的脚本文件中,并在程序中引入。例如,你将上面的代码保存在loadUsersVariable.as文件中,然后在程序中引入:
<
mx:Script
source
="loadUsersVariable.as"
/>
将对象转换为XML
可以使用类初始化函数(即构造函数)将包含XML数据的对象转换成一个真正的XML对象,如下所示:
public
var simpleString:String =
"<users><user>Tariq Ahmed</user></users>";
public var usersXML:XML = new XML(simpleString);
public var usersXML:XML = new XML(simpleString);
XML类属性
XML类有几个静态属性。这些属性是固定的全局设定,因此你不能为每个实例分别设定。当一个属性被改变,这个变化将作用于所有XML类的实例对象。
属性
|
类型
|
描述
|
ignoreComments
|
Boolean
|
指定是将注释作为
XML
源文件的一部分还是将其过滤。默认值为
true
。
|
ignoreProcessingInstructions
|
Boolean
|
指定是将处理指令作为
XML
源文件的一部分还是将其过滤。默认值为
true
。
|
ingoreWhiteSpace
|
Boolean
|
决定文本前后的空白字符将被保留还是被剥离。默认值为
true
,即剥离空白字符。
|
prettyIndent
|
Int
|
定义每个层级的缩进量
(
当
prettyPrinting
被设定为
true
时起效
)
。默认值为
2
。
|
prettyPrinting
|
Boolean
|
当调用
toString()
或
toXMLString()
方法输出时,对输出内容进行结构化处理
(
层级缩进
|
转载于:https://blog.51cto.com/flexria/158403