顶级
public final dynamic class XML
继承XML Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

XML 类包含用于处理 XML 对象的方法和属性。XML 类(以及 XMLList、Namespace 和 QName 类)可实现 ECMAScript for XML (E4X) 规范(ECMA-357 第 2 版)中定义的强大的 XML 处理标准。

使用 toXMLString() 方法可返回 XML 对象的字符串表示形式,不管该 XML 对象具有简单内容还是复杂内容。

注意:ActionScript 2.0 中的 XML 类(以及相关类)已重命名为 XMLDocument 并移到 flash.xml 包中。它包含在 ActionScript 3.0 中,以实现向后兼容。

查看示例

另请参见

Namespace
QName
XMLList
XML.toXMLString()
ECMAScript for XML (E4X) specification (ECMA-357 edition 2)
XML objects


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  ignoreComments : Boolean
[静态] 确定当 XML 对象分析源 XML 数据时,是否忽略 XML 注释。
XML
  ignoreProcessingInstructions : Boolean
[静态] 确定当 XML 对象分析源 XML 数据时,是否忽略 XML 处理指令。
XML
  ignoreWhitespace : Boolean
[静态] 确定分析期间是否忽略文本节点开头和末尾处的空白字符。
XML
  prettyIndent : int
[静态] 确定当 XML.prettyPrinting 属性设置为 true 时,toString() 和 toXMLString() 方法所应用的缩进量。
XML
  prettyPrinting : Boolean
[静态] 确定 toString() 和 toXMLString() 方法是否对某些标签之间的空白字符进行规格化。
XML
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
XML(value:Object)
创建一个新的 XML 对象。
XML
  
可将命名空间添加到该 XML 对象所在范围的命名空间集中。
XML
  
将给定子项追加到该 XML 对象属性的末尾。
XML
  
attribute(attributeName:*):XMLList
返回其名称与 attributeName 参数相符的属性的 XML 值。
XML
  
返回给定 XML 对象的属性值列表。
XML
  
child(propertyName:Object):XMLList
列出 XML 对象的子项。
XML
  
确定该 XML 对象在其父项上下文中从 0 开始编制索引的位置。
XML
  
按 XML 对象的显示顺序列出其子项。
XML
  
列出包含 XML 注释的 XML 对象的属性。
XML
  
对比该 XML 对象与给定 value 参数。
XML
  
返回给定 XML 对象的副本。
XML
  
[静态] 返回一个下列属性设置为默认值的对象:ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent 和 prettyPrinting。
XML
  
返回包含给定 name 参数的 XML 对象的所有后代(子级、孙级、曾孙级等)。
XML
  
列出某 XML 对象的元素。
XML
  
检查该 XML 对象是否包含复杂内容。
XML
  
检查该对象是否具有 p 参数所指定的属性。
XML
  
检查该 XML 对象是否包含简单内容。
XML
  
根据该 XML 对象的父项列出其命名空间。
XML
  
在该 XML 对象的 child1 参数后插入给定的 child2 参数并返回生成的对象。
XML
  
在该 XML 对象的 child1 参数前插入给定的 child2 参数并返回生成的对象。
XML
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
对于 XML 对象,该方法始终返回整数 1。
XML
  
提供该 XML 对象限定名称的本地名称部分。
XML
  
提供该 XML 对象的限定名称。
XML
  
namespace(prefix:String = null):*
如果没有提供参数,则提供与该 XML 对象的限定名关联的命名空间。
XML
  
在该 XML 对象的父项中列出与其关联的命名空间声明。
XML
  
指定节点的类型:文本、注释、处理指令、属性或元素。
XML
  
对于该 XML 对象以及所有子级 XML 对象,合并相邻文本节点并删除空文本节点。
XML
  
返回 XML 对象的父项。
XML
  
将提供的 child 对象的副本插入 XML 元素中,并放在该元素的任何现有 XML 属性前面。
XML
  
如果提供了 name 参数,则列出 XML 对象中包含带有该 name 的处理指令的所有子项。
XML
  
检查属性 p 所在的属性集是否可在应用于 XMLList 对象的 for..in 语句中遍历。
XML
  
删除该对象及其所有子级的给定命名空间。
XML
  
replace(propertyName:Object, value:XML):XML
用给定的 value 参数替换 propertyName 参数所指定的属性。
XML
  
用 value 参数中提供的指定 XML 属性集替换该 XML 对象的子属性。
XML
  
将该 XML 对象的本地名称更改为给定的 name 参数。
XML
  
将该 XML 对象的名称设置为给定限定名称或属性名。
XML
  
设置与该 XML 对象关联的命名空间。
XML
 Inherited
设置循环操作动态属性的可用性。
Object
  
[静态] 设置下列 XML 属性的值:ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent 和 prettyPrinting。
XML
  
[静态] 检索下列属性:ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent 和 prettyPrinting。
XML
  
返回 XML 对象用来表示 XML 文本节点的所有 XML 属性的 XMLList 对象。
XML
  
返回 XML 对象的字符串表示形式。
XML
  
返回 XML 对象的字符串表示形式。
XML
  
返回该 XML 对象。
XML
属性详细信息
ignoreComments属性
ignoreComments:Boolean  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

确定当 XML 对象分析源 XML 数据时,是否忽略 XML 注释。默认情况下,将忽略注释 (true)。若要包括 XML 注释,请将此属性设置为 falseignoreComments 属性仅在 XML 分析过程中使用,而不能在调用任何方法(例如,myXMLObject.child(*).toXMLString())时使用。如果源 XML 包含注释节点,可在 XML 分析过程中保留或丢弃这些节点。



实现
    public static function get ignoreComments():Boolean
    public function set ignoreComments(value:Boolean):void

另请参见


示例
本示例演示将 XML.ignoreComments 设置为 false 以及设置为 true 的效果:
XML.ignoreComments = false;
var xml1:XML = 
        <foo>
            <!-- comment -->
        </foo>;
trace(xml1.toXMLString()); // <foo><!-- comment --></foo>

XML.ignoreComments = true;
var xml2:XML = 
        <foo>
            <!-- example -->
        </foo>;
trace(xml2.toXMLString()); // <foo/>
ignoreProcessingInstructions属性 
ignoreProcessingInstructions:Boolean  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

确定当 XML 对象分析源 XML 数据时,是否忽略 XML 处理指令。默认情况下,将忽略处理指令 (true)。若要包括 XML 处理指令,请将此属性设置为 falseignoreProcessingInstructions 属性仅在 XML 分析过程中使用,而不能在调用任何方法(例如,myXMLObject.child(*).toXMLString())时使用。如果源 XML 包含处理指令节点,可在 XML 分析过程中保留或丢弃这些节点。



实现
    public static function get ignoreProcessingInstructions():Boolean
    public function set ignoreProcessingInstructions(value:Boolean):void

另请参见


示例
本示例演示将 XML.ignoreProcessingInstructions 设置为 false 以及设置为 true 的效果:
XML.ignoreProcessingInstructions = false;
var xml1:XML = 
        <foo>
            <?exampleInstruction ?>
        </foo>;
trace(xml1.toXMLString()); // <foo><?exampleInstruction ?></foo>

XML.ignoreProcessingInstructions = true;
var xml2:XML = 
        <foo>
            <?exampleInstruction ?>
        </foo>;
trace(xml2.toXMLString()); // <foo/>
ignoreWhitespace属性 
ignoreWhitespace:Boolean  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

确定分析期间是否忽略文本节点开头和末尾处的空白字符。默认情况下,将忽略空白 (true)。如果文本节点 100% 是空白,且 ignoreWhitespace 属性设置为 true,则不会创建该节点。若要显示文本节点中的空白,请将 ignoreWhitespace 属性设置为 false



实现
    public static function get ignoreWhitespace():Boolean
    public function set ignoreWhitespace(value:Boolean):void

示例
本示例演示将 XML.ignoreWhitespace 设置为 false 以及设置为 true 的效果:
XML.ignoreWhitespace = false;
var xml1:XML = <foo>    </foo>;
trace(xml1.children().length()); // 1

XML.ignoreWhitespace = true;
var xml2:XML = <foo>    </foo>;
trace(xml2.children().length()); // 0
prettyIndent属性 
prettyIndent:int  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

确定当 XML.prettyPrinting 属性设置为 true 时,toString()toXMLString() 方法所应用的缩进量。应用缩进时使用空格字符,而不是制表符。默认值为 2



实现
    public static function get prettyIndent():int
    public function set prettyIndent(value:int):void

另请参见


示例
本示例演示设置 XML.prettyIndent 静态属性的效果:
var xml:XML = <foo><bar/></foo>;
XML.prettyIndent = 0;
trace(xml.toXMLString());

XML.prettyIndent = 1;
trace(xml.toXMLString());

XML.prettyIndent = 2;
trace(xml.toXMLString());
prettyPrinting属性 
prettyPrinting:Boolean  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

确定 toString()toXMLString() 方法是否对某些标签之间的空白字符进行规格化。默认值为 true



实现
    public static function get prettyPrinting():Boolean
    public function set prettyPrinting(value:Boolean):void

另请参见


示例
本示例演示设置 XML.prettyPrinting 静态属性的效果:
var xml:XML = <foo><bar/></foo>;
XML.prettyPrinting = false;
trace(xml.toXMLString());

XML.prettyPrinting = true;
trace(xml.toXMLString());
构造函数详细信息
XML()构造函数
public function XML(value:Object)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

创建一个新的 XML 对象。调用 XML 类的方法之前,必须使用该构造函数创建一个 XML 对象。

使用 toXMLString() 方法可返回 XML 对象的字符串表示形式,不管该 XML 对象具有简单内容还是复杂内容。

参数
value:Object — 可通过顶级 XML() 函数转换为 XML 的任意对象。

另请参见

方法详细信息
addNamespace()方法
AS3 function addNamespace(ns:Object):XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

可将命名空间添加到该 XML 对象所在范围的命名空间集中。如果 XML 对象(其前缀与给定参数的前缀匹配)所在范围的命名空间中已存在该命名空间,则现有命名空间的前缀将设置为 undefined。如果输入参数是一个 Namespace 对象,则直接使用该参数。如果它是一个 QName 对象,则使用输入参数的 URI 创建新的命名空间;否则,会将它转换为一个 String 值并根据该 String 值创建命名空间。

参数

ns:Object — 要添加到 XML 对象中的命名空间。

返回
XML — 添加了命名空间的新 XML 对象。

另请参见


示例

下面的示例使用在 XML 对象中定义的命名空间,并将其应用于另一个 XML 对象:
var xml1:XML = <ns:foo xmlns:ns="www.example.com/ns" />;
var nsNamespace:Namespace = xml1.namespace();

var xml2:XML = <bar />;
xml2.addNamespace(nsNamespace);
trace(xml2.toXMLString()); // <bar xmlns:ns="www.example.com/ns"/>
appendChild()方法 
AS3 function appendChild(child:Object):XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将给定子项追加到该 XML 对象属性的末尾。appendChild() 方法可采用 XML 对象、XMLList 对象或随后转换为 String 的任何其它数据类型。

使用 delete (XML) 运算符删除 XML 节点。

参数

child:Object — 要追加的 XML 对象。

返回
XML — 生成的 XML 对象。

另请参见


示例

下面的示例向 XML 对象的子级列表的末尾追加一个新元素:
var xml:XML = 
        <body>
            <p>hello</p>
        </body>;
        
xml.appendChild(<p>world</p>);    
trace(xml.p[0].toXMLString()); // <p>hello</p>
trace(xml.p[1].toXMLString()); // <p>world</p>
attribute()方法 
AS3 function attribute(attributeName:*):XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回其名称与 attributeName 参数相符的属性的 XML 值。可在 XML 元素内找到属性。在以下示例中,元素具有名为“gender”的属性,其值为“boy”:<first gender="boy">John</first>

attributeName 参数可以是任何数据类型;但 String 是最常用的数据类型。在传递 QName 对象之外的任何对象时,attributeName 参数会使用 toString() 方法将参数转换为字符串。

如果需要一个限定名称引用,可以传入 QName 对象。QName 对象可定义命名空间和本地名称,还可定义属性的限定名称。因此,调用 attribute(qname) 不同于调用 attribute(qname.toString())

参数

attributeName:* — 属性的名称。

返回
XMLList — 一个 XMLList 对象或空的 XMLList 对象。在未定义属性值时返回一个空的 XMLList 对象。

另请参见


示例

本示例演示如何将 QName 对象传递给 attribute() 方法。localName 属性为 attrnamespace 属性为 ns
 var xml:XML = <ns:node xmlns:ns = "http://uri" ns:attr = '7' />       
 var qn:QName = new QName("http://uri", "attr");
 trace (xml.attribute(qn)); // 7

若要返回名称与 ActionScript 保留字匹配的属性,请使用 attribute() 方法替代属性标识符 (@) 运算符,如下面的示例所示:
 var xml:XML = <example class="first" />
 trace(xml.attribute("class"));
 
attributes()方法 
AS3 function attributes():XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回给定 XML 对象的属性值列表。结合使用 name() 方法和 attributes() 方法可返回属性的名称。 使用 xml.attributes() 等效于 xml.@*

返回
XMLList — 属性值的列表。

另请参见


示例

下面的示例返回属性的名称:
var xml:XML=<example id='123' color='blue'/>
trace(xml.attributes()[1].name()); //color

下面的示例返回所有属性的名称:
 
var xml:XML = <example id='123' color='blue'/>
var attNamesList:XMLList = xml.@*;

trace (attNamesList is XMLList); // true
trace (attNamesList.length()); // 2

for (var i:int = 0; i < attNamesList.length(); i++)
{ 
    trace (typeof (attNamesList[i])); // xml
    trace (attNamesList[i].nodeKind()); // attribute
    trace (attNamesList[i].name()); // id and color
} 
child()方法 
AS3 function child(propertyName:Object):XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

列出 XML 对象的子项。一个 XML 子项就是一个 XML 元素、文本节点、注释或处理指令。

使用 propertyName 参数可列出特定 XML 子项的内容。例如,若要返回名为 <first> 的子项的内容,可使用 child.name("first")。使用子项的索引编号,可以生成相同的结果。索引编号标识该子项在其它 XML 子项列表中的位置。例如,name.child(0) 将返回列表中的第一个子项。

使用星号 (*) 可输出 XML 文档中的所有子项。例如,doc.child("*")

结合使用 length() 方法与 child() 方法的星号 (*) 参数可输出子项的总数。例如,numChildren = doc.child("*").length()

参数

propertyName:Object — XML 子对象的元素名称或整数。

返回
XMLList — 与输入参数匹配的子节点的 XMLList 对象。

另请参见


示例

本示例演示如何使用 child() 方法识别具有指定名称的子元素:
var xml:XML = 
        <foo>
            <bar>text1</bar>
            <bar>text2</bar>
        </foo>;
trace(xml.child("bar").length());  // 2
trace(xml.child("bar")[0].toXMLString()); // <bar>text1</bar>
trace(xml.child("bar")[1].toXMLString()); // <bar>text2</bar>
childIndex()方法 
AS3 function childIndex():int

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

确定该 XML 对象在其父项上下文中从 0 开始编制索引的位置。

返回
int — 对象的位置。返回 -1 以及正整数。

另请参见


示例

本示例演示如何使用 childIndex() 方法:
var xml:XML = 
            <foo>
                <bar />
                text
                <bob />
            </foo>;
trace(xml.bar.childIndex()); // 0
trace(xml.bob.childIndex()); // 2
children()方法 
AS3 function children():XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

按 XML 对象的显示顺序列出其子项。一个 XML 子项就是一个 XML 元素、文本节点、注释或处理指令。

返回
XMLList — XML 对象子项的 XMLList 对象。

另请参见


示例

本示例演示如何使用 children() 方法:
XML.ignoreComments = false;
XML.ignoreProcessingInstructions = false;
var xml:XML = 
        <foo id="22">
            <bar>44</bar>
            text
            <!-- comment -->
            <?instruction ?>
        </foo>;
trace(xml.children().length()); // 4
trace(xml.children()[0].toXMLString()); // <bar>44</bar>
trace(xml.children()[1].toXMLString()); // text
trace(xml.children()[2].toXMLString()); // <!-- comment -->
trace(xml.children()[3].toXMLString()); // <?instruction ?>
comments()方法 
AS3 function comments():XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

列出包含 XML 注释的 XML 对象的属性。

返回
XMLList — 包含注释的属性的 XMLList 对象。

另请参见


示例

本示例演示如何使用 comments() 方法:
XML.ignoreComments = false;
var xml:XML = 
        <foo>
            <!-- example -->
            <!-- example2 -->
        </foo>;
trace(xml.comments().length()); // 2
trace(xml.comments()[1].toXMLString()); // <!-- example2 -->
contains()方法 
AS3 function contains(value:XML):Boolean

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

对比该 XML 对象与给定 value 参数。

参数

value:XML — 要与当前 XML 对象进行对比的值。

返回
Boolean — 如果 XML 对象与 value 参数匹配,则为 true;否则为 false

另请参见


示例

本示例演示如何使用 contains() 方法:
var xml:XML = 
        <order>
            <item>Rice</item>
            <item>Kung Pao Shrimp</item>
        </order>;
trace(xml.item[0].contains(<item>Rice</item>)); // true
trace(xml.item[1].contains(<item>Kung Pao Shrimp</item>)); // true
trace(xml.item[1].contains(<item>MSG</item>)); // false
copy()方法 
AS3 function copy():XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回给定 XML 对象的副本。该副本为整个节点树的副本。复制的 XML 对象没有父级,如果尝试调用 parent() 方法,将返回 null

返回
XML — 对象的副本。

另请参见


示例

本示例演示 copy() 方法如何创建 XML 对象的新实例。修改副本时,原始对象保持不变:
var xml1:XML = <foo />;
var xml2:XML = xml1.copy();
xml2.appendChild(<bar />);
trace(xml1.bar.length()); // 0
trace(xml2.bar.length()); // 1
defaultSettings()方法 
AS3 static function defaultSettings():Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回一个下列属性设置为默认值的对象:ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndentprettyPrinting。其默认值如下:

注意:不要将此方法应用于 XML 类的实例;应将其应用于 XML,如以下代码所示:var df:Object = XML.defaultSettings()

返回
Object — 属性设置为默认设置的对象。

另请参见


示例

下面的示例演示如何在设置 XML 对象之前应用某些自定义设置(以便包含注释和处理指令),如何在设置另一个 XML 对象之前恢复为默认设置,以及如何再次设置自定义设置(以便设置更多 XML 对象):
XML.ignoreComments = false;
XML.ignoreProcessingInstructions = false;
var customSettings:Object = XML.settings();

var xml1:XML = 
        <foo>
            <!-- comment -->
            <?instruction ?>
        </foo>;
trace(xml1.toXMLString());
//    <foo>
//        <!-- comment -->
//         <?instruction ?>
//    </foo>

XML.setSettings(XML.defaultSettings());
var xml2:XML = 
        <foo>
            <!-- comment -->
            <?instruction ?>
        </foo>;
trace(xml2.toXMLString());
descendants()方法 
AS3 function descendants(name:Object = *):XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回包含给定 name 参数的 XML 对象的所有后代(子级、孙级、曾孙级等)。name 参数是可选项。name 参数可以为 QName 对象、String 数据类型或随后转换为 String 数据类型的任何其它数据类型。

若要返回所有后代,请使用“*”参数。如果未传递任何参数,则传递字符串“*”,并返回此 XML 对象的所有后代。

参数

name:Object (default = *) — 要匹配的元素的名称。

返回
XMLList — 匹配后代的 XMLList 对象。如果没有后代,则返回空的 XMLList 对象。

另请参见


示例

若要返回名称与 ActionScript 保留字相匹配的后代,请使用 descendants() 方法,而不要使用后代运算符 (..), 运算符,如下面的示例所示:
var xml:XML = 
  <enrollees>
    <student id="239">
        <class name="Algebra" />
        <class name="Spanish 2"/>
    </student>
    <student id="206">
        <class name="Trigonometry" />
        <class name="Spanish 2" />
    </student>
  </enrollees>
trace(xml.descendants("class")); 

下面的示例演示 descendants() 方法如何返回包含所有后代对象(包括子级、孙级等)的 XMLList 对象:
XML.ignoreComments = false;
var xml:XML = 
        <body>
            <!-- comment -->
            text1
            <a>
                <b>text2</b>
            </a>
        </body>;
trace(xml.descendants("*").length()); // 5
trace(xml.descendants("*")[0]); // // <!-- comment -->
trace(xml.descendants("*")[1].toXMLString()); // text1
trace(xml.descendants("a").toXMLString()); // <a><b>text2</b></a>
trace(xml.descendants("b").toXMLString()); // <b>text2</b>
elements()方法 
AS3 function elements(name:Object = *):XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

列出某 XML 对象的元素。一个由开始和结束标签组成的元素;例如 <first></first>name 参数是可选项。name 参数可以为 QName 对象、String 数据类型或随后转换为 String 数据类型的任何其它数据类型。使用 name 参数可列出特定元素。例如,以下示例中的元素“first”返回“John”:<first>John</first>

若要列出所有元素,请使用星号 (*) 作为参数。该星号也是默认参数。

使用带星号参数的 length() 方法可输出元素的总数。例如,numElement = addressbook.elements("*").length()

参数

name:Object (default = *) — 元素的名称。元素的名称由尖括号括起。例如,以下示例中的“first”为 name<first></first>

返回
XMLList — 元素内容的 XMLList 对象。元素内容位于起始和结束标签之间。如果使用星号 (*) 调用所有元素,将返回元素的标签和内容。

另请参见


示例

下例说明 elements() 方法只返回元素列表,而不返回注释、文本属性或处理指令:
var xml:XML = 
        <foo>
            <!-- comment -->
            <?instruction ?>
            text
            <a>1</a>
            <b>2</b>
        </foo>;
trace(xml.elements("*").length()); // 2
trace(xml.elements("*")[0].toXMLString()); // <a>1</a>
trace(xml.elements("b").length()); // 1
trace(xml.elements("b")[0].toXMLString()); // <b>2</b>

若要返回名称与 ActionScript 保留字相匹配的元素,请使用 elements() 方法替代 XML 点 (.) 运算符,如下面的示例所示:
var xml:XML =
 <student id="206">
    <class name="Trigonometry" />
    <class name="Spanish 2" />
 </student>
trace(xml.elements("class")); 
hasComplexContent()方法 
AS3 function hasComplexContent():Boolean

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

检查该 XML 对象是否包含复杂内容。如果 XML 对象具有子元素,则表明它包含复杂内容。表示属性、注释、处理指令和文本节点的 XML 对象不包含复杂内容。但是,仍可将包含上述内容的对象视为包含复杂内容(条件是该对象具有子元素)。

返回
Boolean — 如果 XML 对象包含复杂内容,则为 true,否则为 false

另请参见


示例

下面的示例演示一个 XML 对象,该对象有一个包含简单内容的名为 a 的属性,以及一个包含复杂内容的名为 a 的属性:
var xml:XML = 
        <foo>
            <a>
                text
            </a>
            <a>
                <b/>
            </a>
        </foo>;
trace(xml.a[0].hasComplexContent()); // false
trace(xml.a[1].hasComplexContent()); // true

trace(xml.a[0].hasSimpleContent()); // true
trace(xml.a[1].hasSimpleContent()); // false
hasOwnProperty()方法 
AS3 function hasOwnProperty(p:String):Boolean

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

检查该对象是否具有 p 参数所指定的属性。

参数

p:String — 要匹配的属性。

返回
Boolean — 如果此属性存在,则为 true;否则为 false

另请参见


示例

下例使用 hasOwnProperty() 方法,以确保属性 (b) 在计算使用该属性的表达式 (b == "11") 之前便已存在:
var xml:XML = 
        <foo>
            <a />
            <a>
                <b>10</b>
            </a>
            <a>
                <b>11</b>
            </a>
        </foo>;
trace(xml.a.(hasOwnProperty("b") && b == "11")); 
如果本示例的最后一行内容如下所示,则 Flash Player 将引发异常,因为第一个元素(名为 a)不具有名为 b 的属性:

trace(xml.a.(b == "11"));


下例使用 hasOwnProperty() 方法,以确保属性 (item) 在计算使用该属性的表达式 (item.contains("toothbrush")) 之前便已存在:
var xml:XML = 
        <orders>
            <order id='1'>
                <item>toothbrush</item>
                <item>toothpaste</item>
            </order>
            <order>
                <returnItem>shoe polish</returnItem>
            </order>
        </orders>;
trace(xml.order.(hasOwnProperty("item") && item.contains("toothbrush"))); 
hasSimpleContent()方法 
AS3 function hasSimpleContent():Boolean

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

检查该 XML 对象是否包含简单内容。如果 XML 对象表示文本节点、属性节点或不包含子元素的 XML 元素,则表明它包含简单内容。表示注释和处理指令的 XML 对象包含简单内容。

返回
Boolean — 如果 XML 对象包含简单内容,则为 true,否则为 false

另请参见


示例

下面的示例演示一个 XML 对象,该对象有一个包含简单内容的名为 a 的属性,以及一个包含复杂内容的名为 a 的属性:
var xml:XML = 
        <foo>
            <a>
                text
            </a>
            <a>
                <b/>
            </a>
        </foo>;
trace(xml.a[0].hasComplexContent()); // false
trace(xml.a[1].hasComplexContent()); // true

trace(xml.a[0].hasSimpleContent()); // true
trace(xml.a[1].hasSimpleContent()); // false
inScopeNamespaces()方法 
AS3 function inScopeNamespaces():Array

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

根据该 XML 对象的父项列出其命名空间。

返回
Array — Namespace 对象的数组。

另请参见

insertChildAfter()方法 
AS3 function insertChildAfter(child1:Object, child2:Object):*

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在该 XML 对象的 child1 参数后插入给定的 child2 参数并返回生成的对象。如果 child1 参数为 null,则该方法将在 XML 对象的所有子项之前 插入 child2 的内容(也就是说, 在任何子项之后)。如果提供 child1,但 XML 对象中不包含该参数,则不修改该 XML 对象并返回 undefined

如果对不是元素(文本、属性、注释、pi 等等)的 XML 子项调用该方法,则返回 undefined

使用 delete (XML) 运算符删除 XML 节点。

参数

child1:Object — 在 child2 之前插入的源对象中的对象。
 
child2:Object — 要插入的对象。

返回
* — 生成的 XML 对象或 undefined

另请参见


示例

下面的示例将一个元素追加到 XML 对象的子元素的末尾:
var xml:XML = 
        <menu>
            <item>burger</item>
            <item>soda</item>
        </menu>;
xml.insertChildAfter(xml.item[0], <saleItem>fries</saleItem>);
trace(xml);
trace() 输出如下所示:
 <menu>
 	<item>burger</item>
 	<saleItem>fries</saleItem>
 	<item>soda</item>
 </menu>
insertChildBefore()方法 
AS3 function insertChildBefore(child1:Object, child2:Object):*

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在该 XML 对象的 child1 参数前插入给定的 child2 参数并返回生成的对象。如果 child1 参数为 null,则该方法将在 XML 对象的所有子项之后 插入 child2 的内容(也就是说, 在任何子项之前)。如果提供 child1,但 XML 对象中不包含该参数,则不修改该 XML 对象并返回 undefined

如果对不是元素(文本、属性、注释、pi 等等)的 XML 子项调用该方法,则返回 undefined

使用 delete (XML) 运算符删除 XML 节点。

参数

child1:Object — 在 child2 之后插入的源对象中的对象。
 
child2:Object — 要插入的对象。

返回
* — 生成的 XML 对象或 undefined

另请参见


示例

下面的示例将一个元素追加到 XML 对象的子元素的末尾:
var xml:XML = 
        <menu>
            <item>burger</item>
            <item>soda</item>
        </menu>;
xml.insertChildBefore(xml.bar[0], <saleItem>fries</saleItem>);
trace(xml);
trace() 输出如下所示:
<menu>
 	<saleItem>fries</saleItem>
 	<item>burger</item>
 	<item>soda</item>
 </menu>
length()方法 
AS3 function length():int

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

对于 XML 对象,该方法始终返回整数 1。XMLList 类的 length() 方法对仅包含一个值的 XMLList 对象返回值 1

返回
int — 对于任何 XML 对象,始终返回 1

另请参见

localName()方法 
AS3 function localName():Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

提供该 XML 对象限定名称的本地名称部分。

返回
Object — 作为 String 或 null 的本地名称。

另请参见


示例

下面的示例演示如何使用 localName() 方法:
var xml:XML = 
        <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
            soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

                        <soap:Body xmlns:wx = "http://example.com/weather">
                <wx:forecast>
                    <wx:city>Quito</wx:city>
                </wx:forecast>
            </soap:Body>
        </soap:Envelope>;
        
trace(xml.localName()); // Envelope
name()方法 
AS3 function name():Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

提供该 XML 对象的限定名称。

返回
Object — 限定名称为 QName 或 null

另请参见


示例

下面的示例演示如何使用 name() 方法获取 XML 对象的限定名称:
var xml:XML = 
        <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
            soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

                        <soap:Body xmlns:wx = "http://example.com/weather">
                <wx:forecast>
                    <wx:city>Quito</wx:city>
                </wx:forecast>
            </soap:Body>
        </soap:Envelope>;
        
trace(xml.name().localName); // Envelope
trace(xml.name().uri); // "http://www.w3.org/2001/12/soap-envelope"

下面的示例演示如何对 XML 属性 (property)、文本元素和属性 (attribute) 调用 name() 方法:
var xml:XML = 
        <foo x="15" y="22">
            text
        </foo>;
        
trace(xml.name().localName); // foo
trace(xml.name().uri == ""); // true
trace(xml.children()[0]); // text
trace(xml.children()[0].name()); // null
trace(xml.attributes()[0]); // 15
trace(xml.attributes()[0].name()); // x
namespace()方法 
AS3 function namespace(prefix:String = null):*

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

如果没有提供参数,则提供与该 XML 对象的限定名关联的命名空间。如果指定了 prefix 参数,则该方法将返回与 prefix 参数匹配且位于 XML 对象所在范围内的命名空间。如果不存在此类命名空间,该方法将返回 undefined

参数

prefix:String (default = null) — 要匹配的前缀。

返回
* — 返回 nullundefined 或命名空间。

另请参见


示例

下例使用 namespace() 方法获取 XML 对象的命名空间,并将其分配给名为 soap 的 Namespace 对象,随后将使用该对象标识 xml 对象 (xml.soap::Body[0]):
var xml:XML = 
        <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
            soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

                        <soap:Body xmlns:wx = "http://example.com/weather">
                <wx:forecast>
                    <wx:city>Quito</wx:city>
                </wx:forecast>
            </soap:Body>
        </soap:Envelope>;
        
var soap:Namespace = xml.namespace();
trace(soap.prefix); // soap
trace(soap.uri); // http://www.w3.org/2001/12/soap-envelope

var body:XML = xml.soap::Body[0];
trace(body.namespace().prefix); // soap
trace(xml.namespace().uri); // http://www.w3.org/2001/12/soap-envelope
trace(body.namespace("wx").uri); // "http://example.com/weather"

下例使用 namespace() 方法获取节点的默认命名空间,以及特定前缀 ("dc") 的命名空间:
var xml:XML = 
        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
            xmlns:dc="http://purl.org/dc/elements/1.1/" 
            xmlns="http://purl.org/rss/1.0/">
                <!-- ... -->
        </rdf:RDF>;
                    
trace(xml.namespace()); // http://www.w3.org/1999/02/22-rdf-syntax-ns#
trace(xml.namespace("dc")); // http://purl.org/dc/elements/1.1/
trace(xml.namespace("foo")); // undefined
namespaceDeclarations()方法 
AS3 function namespaceDeclarations():Array

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在该 XML 对象的父项中列出与其关联的命名空间声明。

返回
Array — Namespace 对象的数组。

另请参见


示例

下面的示例输出 XML 对象的命名空间声明:
var xml:XML = 
        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
            xmlns:dc="http://purl.org/dc/elements/1.1/" 
            xmlns="http://purl.org/rss/1.0/">

            <!-- ... -->
            
        </rdf:RDF>;
                    
for (var i:uint = 0; i < xml.namespaceDeclarations().length; i++) {
    var ns:Namespace = xml.namespaceDeclarations()[i]; 
    var prefix:String = ns.prefix;
    if (prefix == "") {
        prefix = "(default)";
    }
    trace(prefix + ":" , ns.uri);
}
trace() 输出如下所示:
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
 dc: http://purl.org/dc/elements/1.1/
 (default): http://purl.org/rss/1.0/
nodeKind()方法 
AS3 function nodeKind():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指定节点的类型:文本、注释、处理指令、属性或元素。

返回
String — 所使用的节点类型。

另请参见


示例

下面的示例跟踪所有这五种节点类型:
XML.ignoreComments = false;
XML.ignoreProcessingInstructions = false;

var xml:XML = 
    <example id="10">
        <!-- this is a comment -->
        <?test this is a pi ?>
        and some text
    </example>;

trace(xml.nodeKind()); // element
trace(xml.children()[0].nodeKind()); // comment
trace(xml.children()[1].nodeKind()); // processing-instruction
trace(xml.children()[2].nodeKind()); // text
trace(xml.@id[0].nodeKind()); // attribute
normalize()方法 
AS3 function normalize():XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

对于该 XML 对象以及所有子级 XML 对象,合并相邻文本节点并删除空文本节点。

返回
XML — 生成的标准 XML 对象。

另请参见


示例

下面的示例演示调用 normalize() 方法的效果:
var xml:XML = <body></body>;
xml.appendChild("hello");
xml.appendChild(" world");
trace(xml.children().length()); // 2
xml.normalize();
trace(xml.children().length()); // 1
parent()方法 
AS3 function parent():*

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回 XML 对象的父项。如果该 XML 对象没有父项,则该方法返回 undefined

返回
* — 父 XML 对象。返回 Stringnull

另请参见


示例

下例使用 parent() 方法标识 XML 结构中特定元素的父项:
var xml:XML = 
    <body>
        <p id="p1">Hello</p>
        <p id="p2">Test:
            <ul>
                <li>1</li>
                <li>2</li>
            </ul>
        </p>
    </body>;
var node:XML = xml.p.ul.(li.contains("1"))[0]; // == <ul> ... </ul>
trace(node.parent().@id); // p2
prependChild()方法 
AS3 function prependChild(value:Object):XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将提供的 child 对象的副本插入 XML 元素中,并放在该元素的任何现有 XML 属性前面。

使用 delete (XML) 运算符删除 XML 节点。

参数

value:Object — 要插入的对象。

返回
XML — 生成的 XML 对象。

另请参见


示例

下面的示例使用 prependChild() 方法将元素添加到 XML 对象子级列表的开头:
var xml:XML = 
        <body>
            <p>hello</p>
        </body>;
        
xml.prependChild(<p>world</p>);    
trace(xml.p[0].toXMLString()); // <p>world</p>
trace(xml.p[1].toXMLString()); // <p>hello</p>
processingInstructions()方法 
AS3 function processingInstructions(name:String = "*"):XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

如果提供 name 参数,则列出包含该 name 的处理指令的 XML 对象的所有子项。如果未提供参数,则该方法会列出包含任何处理指令的 XML 对象的所有子项。

参数

name:String (default = "*") — 要匹配的处理指令的名称。

返回
XMLList — 匹配的子对象的列表。

另请参见


示例

下面的示例使用 processingInstructions() 方法获取 XML 对象的处理指令数组:
XML.ignoreProcessingInstructions = false;
var xml:XML =
    <body>
            foo
            <?xml-stylesheet href="headlines.css" type="text/css" ?>
            <?instructionX ?>
            
    </body>;

trace(xml.processingInstructions().length()); // 2
trace(xml.processingInstructions()[0].name()); // xml-stylesheet
propertyIsEnumerable()方法 
AS3 function propertyIsEnumerable(p:String):Boolean

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

检查属性 p 所在的属性集是否可在应用于 XMLList 对象的 for..in 语句中遍历。仅当 toString(p) == "0" 时返回 true

参数

p:String — 要检查的属性。

返回
Boolean — 如果该属性可以在 for..in 语句中,为 true;否则为 false

另请参见


示例

下例演示,对于 XML 对象,propertyNameIsEnumerable() 方法返回值 true(仅对于值 0),而对于 XMLList 对象,返回值为 true(对于 XMLList 对象的每个有效索引值):
var xml:XML = 
        <body>
             <p>Hello</p>
               <p>World</p>
        </body>;

trace(xml.propertyIsEnumerable(0)); // true
trace(xml.propertyIsEnumerable(1)); // false

for (var propertyName:String in xml) {
    trace(xml[propertyName]);
}

var list:XMLList = xml.p;
trace(list.propertyIsEnumerable(0)); // true
trace(list.propertyIsEnumerable(1)); // true
trace(list.propertyIsEnumerable(2)); // false

for (var propertyName:String in list) { 
    trace(list[propertyName]);
}
removeNamespace()方法 
AS3 function removeNamespace(ns:Namespace):XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

删除该对象及其所有子级的给定命名空间。 如果命名空间由该对象的限定名称或该对象属性的限定名称引用,则 removeNamespaces() 方法不会删除该命名空间。

参数

ns:Namespace — 要删除的命名空间。

返回
XML — 生成的 XML 对象的副本。

另请参见


示例

下面的示例演示如何删除 XML 对象的命名空间声明:
var xml:XML = 
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
        xmlns:dc="http://purl.org/dc/elements/1.1/" 
        xmlns="http://purl.org/rss/1.0/">
    
        <!-- ... -->
        
    </rdf:RDF>;

trace(xml.namespaceDeclarations().length); // 3
trace(xml.namespaceDeclarations()[0] is String); // 
var dc:Namespace = xml.namespace("dc");
xml.removeNamespace(dc);
trace(xml.namespaceDeclarations().length); // 2
replace()方法 
AS3 function replace(propertyName:Object, value:XML):XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用给定的 value 参数替换 propertyName 参数所指定的属性。如果没有属性与 propertyName 匹配,会将 XML 对象保持为未修改状态。

参数

propertyName:Object — 可以是数值、XML 元素集的非限定名称、XML 元素集的限定名称或星号通配符 (*)。使用非限定名称标识默认命名空间中的 XML 元素。
 
value:XML — 替换值。它可以是 XML 对象、XMLList 对象或可以使用 toString() 转换的任何值。

返回
XML — 生成的 XML 对象,其中替换了匹配属性。

另请参见


示例

下面的示例演示在调用 replace() 方法时将整数作为第一个参数:
var xml:XML = 
    <body>
        <p>Hello</p>
        <p>World</p>
        <hr/>
    </body>;

xml.replace(1, <p>Bob</p>);
trace(xml);
这将产生以下 trace() 输出:

 <body>
 	<p>Hello</p>
 	<p>Bob</p>
 	<hr/>
 </body>
 

下面的示例调用 replace() 方法时将字符串作为第一个参数:
var xml:XML = 
    <body>
        <p>Hello</p>
        <p>World</p>
        <hr/>
    </body>;

xml.replace("p", <p>Hi</p>); 
trace(xml);
这将产生以下 trace() 输出:

 <body>
 	<p>Hi</p>
 	<hr/>
 </body>;
 

下面的示例演示在调用 replace() 方法时将 QName 作为第一个参数:
var xml:XML = 
    <ns:body xmlns:ns = "myNS">
        <ns:p>Hello</ns:p>
        <ns:p>World</ns:p>
        <hr/>
    </ns:body>;

var qname:QName = new QName("myNS", "p");
xml.replace(qname, <p>Bob</p>);
trace(xml);
这将产生以下 trace() 输出:

 <ns:body xmlns:ns = "myNS">
 	<p>Bob</p>
 	<hr/>
 </ns:body>
 

下面的示例演示在调用 replace() 方法时将字符串 "*" 作为第一个参数:
var xml:XML = 
    <body>
        <p>Hello</p>
        <p>World</p>
        <hr/>
    </body>;

xml.replace("*", <img src = "hello.jpg"/>);
trace(xml);
这将产生以下 trace() 输出:

 <body>
 	<img src="hello.jpg"/>
 </body>
 
setChildren()方法 
AS3 function setChildren(value:Object):XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

value 参数中提供的指定 XML 属性集替换该 XML 对象的子属性。

参数

value:Object — 替换 XML 属性。可以是单个 XML 对象或 XMLList 对象。

返回
XML — 生成的 XML 对象。

另请参见


示例

下面的示例演示在调用 setChildren() 方法时,先使用 XML 对象作为参数,然后使用 XMLList 对象作为参数:
var xml:XML = 
    <body>
        <p>Hello</p>
        <p>World</p>
    </body>;

var list:XMLList = xml.p;

xml.setChildren(<p>hello</p>);
trace(xml);

//    <body>
//        <p>hello</p>
//    </body>

xml.setChildren(list);
trace(xml);

//    <body>
//        <p>Hello</p>
//        <p>World</p>
//    </body>
setLocalName()方法 
AS3 function setLocalName(name:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将该 XML 对象的本地名称更改为给定的 name 参数。

参数

name:String — 本地名称的替换名称。

另请参见


示例

下面的示例使用 setLocalName() 方法更改 XML 元素的本地名称:
var xml:XML = 
    <ns:item xmlns:ns="http://example.com">
        toothbrush
    </ns:item>;
    
xml.setLocalName("orderItem");
trace(xml.toXMLString()); // <ns:orderItem xmlns:ns="http://example.com">toothbrush</ns:orderItem>
setName()方法 
AS3 function setName(name:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将该 XML 对象的名称设置为给定限定名称或属性名。

参数

name:String — 对象的新名称。

另请参见


示例

下面的示例使用 setName() 方法更改 XML 元素的名称:
var xml:XML = 
    <item>
        toothbrush
    </item>;
    
xml.setName("orderItem");
trace(xml.toXMLString()); // <orderItem>toothbrush</orderItem>
setNamespace()方法 
AS3 function setNamespace(ns:Namespace):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

设置与该 XML 对象关联的命名空间。

参数

ns:Namespace — 新命名空间。

另请参见


示例

下例使用在某个 XML 对象中定义的 soap 命名空间,并将其应用于另一个 XML 对象 (xml2) 的命名空间:
var xml1:XML = 
        <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
            soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
            <!-- ... -->
        </soap:Envelope>;
var ns:Namespace = xml1.namespace("soap");

var xml2:XML = 
    <Envelope>
        <Body/>
    </Envelope>;
    
xml2.setNamespace(ns);

trace(xml2);
setSettings()方法 
AS3 static function setSettings(... rest):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

设置下列 XML 属性的值:ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndentprettyPrinting。以下是默认设置,如果未提供 setObj 参数,将应用这些设置:

注意:不要将此方法应用于 XML 类的实例;应将其应用于 XML,如以下代码所示:XML.setSettings()

参数

... rest — 具有下列各个属性的对象:
  • ignoreComments
  • ignoreProcessingInstructions
  • ignoreWhitespace
  • prettyIndent
  • prettyPrinting

另请参见


示例

下面的示例演示如何在设置 XML 对象之前应用某些自定义设置(以便包含注释和处理指令),如何在设置另一个 XML 对象之前恢复为默认设置,以及如何再次设置自定义设置(以便设置更多 XML 对象):
XML.ignoreComments = false;
XML.ignoreProcessingInstructions = false;
var customSettings:Object = XML.settings();

var xml1:XML = 
        <foo>
            <!-- comment -->
            <?instruction ?>
        </foo>;
trace(xml1.toXMLString());
//    <foo>
//        <!-- comment -->
//         <?instruction ?>
//    </foo>

XML.setSettings(XML.defaultSettings());
var xml2:XML = 
        <foo>
            <!-- comment -->
            <?instruction ?>
        </foo>;
trace(xml2.toXMLString());
settings()方法 
AS3 static function settings():Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

检索下列属性:ignoreCommentsignoreProcessingInstructionsignoreWhitespaceprettyIndentprettyPrinting

返回
Object — 具有下列 XML 属性的对象:
  • ignoreComments
  • ignoreProcessingInstructions
  • ignoreWhitespace
  • prettyIndent
  • prettyPrinting

另请参见


示例

下面的示例演示如何在设置 XML 对象之前应用某些自定义设置(以便包含注释和处理指令),如何在设置另一个 XML 对象之前恢复为默认设置,以及如何再次设置自定义设置(以便设置更多 XML 对象):
XML.ignoreComments = false;
XML.ignoreProcessingInstructions = false;
var customSettings:Object = XML.settings();

var xml1:XML = 
        <foo>
            <!-- comment -->
            <?instruction ?>
        </foo>;
trace(xml1.toXMLString());
//    <foo>
//        <!-- comment -->
//         <?instruction ?>
//    </foo>

XML.setSettings(XML.defaultSettings());
var xml2:XML = 
        <foo>
            <!-- comment -->
            <?instruction ?>
        </foo>;
trace(xml2.toXMLString());
text()方法 
AS3 function text():XMLList

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回 XML 对象用来表示 XML 文本节点的所有 XML 属性的 XMLList 对象。

返回
XMLList — 属性列表。

另请参见


示例

下面的示例使用 text() 方法获得 XML 对象的文本节点:
var xml:XML =
        <body>
            text1
            <hr/>
            text2
        </body>;
trace(xml.text()[0]); // text1
trace(xml.text()[1]); // text2
toString()方法 
AS3 function toString():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回 XML 对象的字符串表示形式。此转换的规则取决于 XML 对象包含的是简单内容还是复杂内容:

若要每次都返回整个 XML 对象,请使用 toXMLString()

返回
String — XML 对象的字符串表示形式。

另请参见


示例

下面的示例演示当 XML 对象包含简单内容时 toString() 方法的返回值:
var test:XML = <type name="Joe">example</type>;
trace(test.toString()); //example

下面的示例演示当 XML 对象包含复杂内容时 toString() 方法的返回值:
var test:XML = 
<type name="Joe">
    <base name="Bob"></base>
    example
</type>;
trace(test.toString());
  // <type name="Joe">
  // <base name="Bob"/>
  // example
  // </type> 
toXMLString()方法 
AS3 function toXMLString():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回 XML 对象的字符串表示形式。与 toString() 方法不同,toXMLString() 方法始终返回 XML 对象的开始标签、属性和结束标签,与 XML 对象包含的是简单内容还是复杂内容无关。(toString() 方法去除包含简单内容的 XML 对象的这些项。)

返回
String — XML 对象的字符串表示形式。

另请参见


示例

下面的示例演示使用 toString() 方法(默认情况下适用于 trace() 方法的所有参数)与使用 toXMLString() 方法之间的区别:
var xml:XML =
        <p>hello</p>;
trace(xml); // hello
trace(xml.toXMLString()); // <p>hello</p>
valueOf()方法 
AS3 function valueOf():XML

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

返回该 XML 对象。

返回
XML — XML 实例的原始值。

另请参见


示例

下面的示例演示 valueOf() 方法返回的值与源 XML 对象相同:
var xml:XML = <p>hello</p>;
trace(xml.valueOf() === xml); // true
示例 如何使用示例
XMLExample.as

下面的示例先创建一个 XML 变量并向其中添加节点。然后使用 XML 属性查找和输出 XML 节点。请注意,“at”(@) 符号用在多个 trace() 调用中,以按属性名称查找信息。
package {
    import flash.display.Sprite;

    public class XmlExample extends Sprite {        
        public function XmlExample() {
            var employees:XML =
                <employees>
                    <employee ssn="123-123-1234">
                        <name first="John" last="Doe"/>
                        <address>
                            <street>11 Main St.</street>
                            <city>San Francisco</city>
                            <state>CA</state>
                            <zip>98765</zip>
                        </address>
                    </employee>
                    <employee ssn="789-789-7890">
                        <name first="Mary" last="Roe"/>
                        <address>
                            <street>99 Broad St.</street>
                            <city>Newton</city>
                            <state>MA</state>
                            <zip>01234</zip>
                        </address>
                    </employee>
                </employees>;

            trace(employees.employee[0].address.zip);   // 98765

            trace(employees.employee[1].@ssn);          // 789-789-7890

            trace(employees.employee.name);             // <name first="John" last="Doe"/>
                                                        // <name first="Mary" last="Roe"/>

            trace(employees..zip[0]);                   // 98765

            trace(employees..@ssn[1]);                  // 789-789-7890

            trace(employees..name);                     // <name first="John" last="Doe"/>
                                                        // <name first="Mary" last="Roe"/>

            trace(employees.employee[0].address.*);     // <street>11 Main St.</street>    
                                                        // <city>San Francisco</city>
                                                        // <state>CA</state>
                                                        // <zip>98765</zip>
            var node:String = "zip";
            trace(employees.employee[0].address[node]); // 98765
            
            var attribute:String = "ssn";
            trace(employees.employee[1].@[attribute]);  // 789-789-7890
            
            for each (var num:XML in employees..@ssn) {
                trace(num);                             // 123-123-1234
            }                                           // 789-789-7890
            
            var ssnToFind:String = "789-789-7890";
            trace(employees.employee.(@ssn == ssnToFind).toXMLString());
                                                        // <employee ssn="789-789-7890">
                                                        // <name first="Mary" last="Roe"/>
                                                        // <address>
                                                        // <street>99 Broad St.</street>
                                                        // <city>Newton</city>
                                                        // <state>MA</state>
                                                        // <zip>01234</zip>
                                                        // </address>
                                                        // </employee>
        }
    }
}