flash.xml
public class XMLNode
继承XMLNode Inheritance Object
子类 XMLDocument

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

XMLNode 类表示存在于 ActionScript 2.0 中但在 ActionScript 3.0 中已重命名的旧 XML 对象。在 ActionScript 3.0 中,请考虑改用新的顶级 XML 类和相关类,这些类支持 E4X (ECMAScript for XML)。使用 XMLNode 类是为了保持向后兼容。

查看示例

另请参见

XML
flash.xml.XMLDocument


公共属性
 属性定义方
  attributes : Object
一个对象,其中包含指定的 XMLNode 实例的所有属性。
XMLNode
  childNodes : Array
[只读 (read-only)] 指定的 XMLNode 对象子级的数组。
XMLNode
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  firstChild : XMLNode
计算指定的 XMLDocument 对象,并引用父节点的子级列表中的第一个子级。
XMLNode
  lastChild : XMLNode
一个 XMLNode 值,它引用节点的子级列表中的最后一个子级。
XMLNode
  localName : String
[只读 (read-only)] XML 节点名称的本地名称部分。
XMLNode
  namespaceURI : String
[只读 (read-only)] 如果 XML 节点具有前缀,则 namespaceURI 为该前缀 (URI) 的 xmlns 声明的值,通常称为命名空间 URI。
XMLNode
  nextSibling : XMLNode
一个 XMLNode 值,它引用父级节点的子级列表中的下一个同级。
XMLNode
  nodeName : String
一个字符串,表示 XMLNode 对象的节点名称。
XMLNode
  nodeType : uint
一个 nodeType 常数值,对于 XML 元素为 XMLNodeType.ELEMENT_NODE,对于文本节点为 XMLNodeType.TEXT_NODE。
XMLNode
  nodeValue : String
XMLDocument 对象的节点值。
XMLNode
  parentNode : XMLNode
一个 XMLNode 值,它引用指定 XML 对象的父级节点;如果该节点没有父级,则返回 null。
XMLNode
  prefix : String
[只读 (read-only)] XML 节点名称的前缀部分。
XMLNode
  previousSibling : XMLNode
一个 XMLNode 值,它引用父级节点的子级列表中的前一个同级。
XMLNode
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
XMLNode(type:uint, value:String)
创建新的 XMLNode 对象。
XMLNode
  
将指定的节点追加到 XML 对象的子级列表中。
XMLNode
  
构造并返回一个类型、名称、值和属性与指定的 XML 对象均相同的新 XML 节点。
XMLNode
  
返回与节点的指定前缀相关联的命名空间 URI。
XMLNode
  
返回与节点的指定命名空间 URI 相关联的前缀。
XMLNode
  
指示指定的 XMLNode 对象是否具有子节点。
XMLNode
 Inherited
指示对象是否已经定义了指定的属性。
Object
  
将新的子节点插入到 XML 对象的子级列表中,且在 beforeNode 节点之前。
XMLNode
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
  
从指定 XML 对象的父级中删除该对象。
XMLNode
 Inherited
设置循环操作动态属性的可用性。
Object
  
计算指定的 XMLNode 对象,构造一个包括节点、子级和属性的 XML 结构的文本表示形式,并以字符串形式返回结果。
XMLNode
 Inherited
返回指定对象的原始值。
Object
属性详细信息
attributes属性
attributes:Object  [读写]

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

一个对象,其中包含指定的 XMLNode 实例的所有属性。XMLNode.attributes 对象为 XMLNode 实例的每个属性包含一个变量。因为这些变量定义为该对象的一部分,所以通常将它们称为该对象的属性。每个属性 (attribute) 的值以字符串形式保存在相应的属性 (property) 中。例如,如果有一个名为 color 的属性 (attribute),则可以通过将 color 指定为属性 (property) 名称来检索该属性 (attribute) 的值,如以下代码所示:

var myColor:String = doc.firstChild.attributes.color



实现
    public function get attributes():Object
    public function set attributes(value:Object):void
childNodes属性 
childNodes:Array  [只读 (read-only)]

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

指定的 XMLNode 对象子级的数组。数组中的每个元素都是对表示子级节点的 XMLNode 对象的引用。这是一个只读属性,不能用于操作子级节点。请使用 appendChild()insertBefore()removeNode() 来操作子节点。

对于文本节点 (nodeType == 3),此属性未定义。



实现
    public function get childNodes():Array

另请参见

firstChild属性 
public var firstChild:XMLNode

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

计算指定的 XMLDocument 对象,并引用父节点的子级列表中的第一个子级。如果该节点没有子级,则此属性为 null。如果该节点为文本节点,则此属性为 undefined。这是一个只读属性,不能用于操作子节点;请使用 appendChild()insertBefore()removeNode() 方法来操作子节点。

另请参见

lastChild属性 
public var lastChild:XMLNode

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

一个 XMLNode 值,它引用节点的子级列表中的最后一个子级。如果该节点没有子级,则 XMLNode.lastChild 属性为 null。此属性不能用于处理子节点;请使用 appendChild()insertBefore()removeNode() 方法来处理子节点。

另请参见

localName属性 
localName:String  [只读 (read-only)]

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

XML 节点名称的本地名称部分。这是没有命名空间前缀的元素名称。例如,节点 <contact:mailbox/>bob@example.com</contact:mailbox> 具有本地名称“mailbox”和前缀“contact”,两者组成完整的元素名称“contact.mailbox”。

您可以通过 XML 节点对象的 prefix 属性来访问命名空间前缀。nodeName 属性会返回完整的名称(包括前缀和本地名称)。



实现
    public function get localName():String
namespaceURI属性 
namespaceURI:String  [只读 (read-only)]

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

如果 XML 节点具有前缀,则 namespaceURI 为该前缀 (URI) 的 xmlns 声明的值,通常称为命名空间 URI。xmlns 声明位于当前节点中或 XML 层次结构中较高层次的节点中。

如果 XML 节点没有前缀,namespaceURI 属性的值将取决于是否定义了默认的命名空间(如 xmlns="http://www.example.com/" 中所示)。如果有默认命名空间,则 namespaceURI 属性的值即为默认命名空间的值。如果没有默认命名空间,则该节点的 namespaceURI 属性为空字符串 ("")。

您可以使用 getNamespaceForPrefix() 方法标识与特定前缀相关联的命名空间。namespaceURI 属性会返回与节点名称相关联的前缀。



实现
    public function get namespaceURI():String

另请参见

nextSibling属性 
public var nextSibling:XMLNode

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

一个 XMLNode 值,它引用父级节点的子级列表中的下一个同级。如果该节点没有下一个同级节点,则此属性为 null。此属性不能用于处理子节点;请使用 appendChild()insertBefore()removeNode() 方法来处理子节点。

另请参见

nodeName属性 
public var nodeName:String

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

一个字符串,表示 XMLNode 对象的节点名称。如果 XMLNode 对象是一个 XML 元素 (nodeType == 1),则 nodeName 是 XML 文件中表示节点的标签的名称。例如,TITLE 是 HTML TITLE 标签的 nodeName。如果 XMLNode 对象是一个文本节点 (nodeType == 3),则 nodeName 为 null

另请参见

nodeType属性 
public var nodeType:uint

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

一个 nodeType 常数值,对于 XML 元素为 XMLNodeType.ELEMENT_NODE,对于文本节点为 XMLNodeType.TEXT_NODE

nodeType 是 W3C DOM Level 1 推荐方法的 NodeType 枚举中的一个数字值:http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html。下表列出了这些值:

整数值已定义的常量
1ELEMENT_NODE
2ATTRIBUTE_NODE
3TEXT_NODE
4CDATA_SECTION_NODE
5ENTITY_REFERENCE_NODE
6ENTITY_NODE
7PROCESSING_INSTRUCTION_NODE
8COMMENT_NODE
9DOCUMENT_NODE
10DOCUMENT_TYPE_NODE
11DOCUMENT_FRAGMENT_NODE
12NOTATION_NODE

在 Flash Player 中,内置 XMLNode 类仅支持 XMLNodeType.ELEMENT_NODEXMLNodeType.TEXT_NODE

另请参见

nodeValue属性 
public var nodeValue:String

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

XMLDocument 对象的节点值。如果 XMLDocument 对象是一个文本节点,则 nodeType 为 3,nodeValue 是节点的文本。如果 XMLDocument 对象是一个 XML 元素(nodeType 为 1),则 nodeValuenull 且为只读。

另请参见

parentNode属性 
public var parentNode:XMLNode

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

一个 XMLNode 值,它引用指定 XML 对象的父级节点;如果该节点没有父级,则返回 null。这是一个只读属性,不能用于操作子节点;请使用 appendChild()insertBefore()removeNode() 方法来操作子节点。

另请参见

prefix属性 
prefix:String  [只读 (read-only)]

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

XML 节点名称的前缀部分。例如,节点 <contact:mailbox/>bob@example.com</contact:mailbox> 具有前缀“contact”和本地名称“mailbox”,两者组成完整的元素名称“contact.mailbox”。

XML 节点对象的 nodeName 属性会返回完整名称(包括前缀和本地名称)。您可以通过 localName 属性来访问元素名称的本地名称部分。



实现
    public function get prefix():String
previousSibling属性 
public var previousSibling:XMLNode

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

一个 XMLNode 值,它引用父级节点的子级列表中的前一个同级。如果该节点没有前一个同级节点,则此属性的值为 null。此属性不能用于处理子节点;请使用 appendChild()insertBefore()removeNode() 方法来处理子节点。

另请参见

构造函数详细信息
XMLNode()构造函数
public function XMLNode(type:uint, value:String)

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

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

注意:使用 createElement()createTextNode() 方法可以将元素和文本节点添加到 XML 文档树中。

参数
type:uint — 节点类型:对于 XML 元素为 1,对于文本节点为 3。
 
value:String — 经解析用以创建新 XMLNode 对象的 XML 文本。

另请参见

方法详细信息
appendChild()方法
public function appendChild(node:XMLNode):void

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

将指定的节点追加到 XML 对象的子级列表中。此方法直接在 childNode 参数引用的节点上操作;它并不追加该节点的副本。如果要追加的节点已经存在于另一个树结构中,则向新位置追加该节点会删除当前位置的该节点。如果 childNode 参数引用的节点已经存在于另一个 XML 树结构中,则在追加的子节点从现有父级节点删除后,它会被放在新的树结构中。

参数

node:XMLNode — 一个 XMLNode,表示要从其当前位置移动到 my_xml 对象的子级列表的节点。

另请参见

cloneNode()方法 
public function cloneNode(deep:Boolean):XMLNode

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

构造并返回一个类型、名称、值和属性与指定的 XML 对象均相同的新 XML 节点。如果将 deep 设置为 true,则递归克隆所有子节点,这将得到一个与原始对象文档树完全相同的副本。

返回的克隆节点与被克隆项目的树不再相关联。因此,nextSiblingparentNodepreviousSibling 值都为 null。如果 deep 参数设置为 false,或者 my_xml 节点没有子节点,则 firstChildlastChild 同样为空。

参数

deep:Boolean — 一个布尔值;如果设置为 true,将会以递归方式克隆指定 XML 对象的子级。

返回
XMLNode — XMLNode 对象。
getNamespaceForPrefix()方法 
public function getNamespaceForPrefix(prefix:String):String

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

返回与节点的指定前缀相关联的命名空间 URI。要确定该 URI,getPrefixForNamespace() 将根据需要从节点开始搜索 XML 层次结构,并返回给定 prefix 的第一个 xmlns 声明的命名空间 URI。

如果没有为指定的前缀定义命名空间,该方法将返回 null

如果您指定了一个空字符串 ("") 作为 prefix,并且为该节点定义了默认命名空间(如 xmlns="http://www.example.com/" 中所示),该方法将返回该默认命名空间 URI。

参数

prefix:String — 该方法为其返回关联的命名空间的前缀。

返回
String — 与指定的前缀关联的命名空间。

另请参见

getPrefixForNamespace()方法 
public function getPrefixForNamespace(ns:String):String

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

返回与节点的指定命名空间 URI 相关联的前缀。为了确定前缀,getPrefixForNamespace() 根据需要从节点开始向上搜索 XML 层次结构,并返回具有与 ns 匹配的命名空间 URI 的第一个 xmlns 声明的前缀。

如果未对给定 URI 进行 xmlns 赋值,该方法将返回 null。如果对给定 URI 进行了 xmlns 赋值但没有与该赋值相关联的前缀,该方法将返回一个空字符串 ("")。

参数

ns:String — 该方法为其返回相关联前缀的命名空间 URI。

返回
String — 与指定的命名空间关联的前缀。

另请参见

hasChildNodes()方法 
public function hasChildNodes():Boolean

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

指示指定的 XMLNode 对象是否具有子节点。如果指定的 XMLNode 对象具有子节点,此属性为 true;否则为 false

返回
Boolean — 如果指定的 XMLNode 对象具有子节点,则返回 true;否则返回 false
insertBefore()方法 
public function insertBefore(node:XMLNode, before:XMLNode):void

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

将新的子节点插入到 XML 对象的子级列表中,且在 beforeNode 节点之前。如果 beforeNode 参数未定义或为空,则使用 appendChild() 方法添加该节点。如果 beforeNode 不是 my_xml 的子级,则插入操作失败。

参数

node:XMLNode — 要插入的 XMLNode 对象。
 
before:XMLNodechildNode 的插入点之前的 XMLNode 对象。

另请参见

removeNode()方法 
public function removeNode():void

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

从指定 XML 对象的父级中删除该对象。还将删除此节点的所有子级节点。

toString()方法 
public function toString():String

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

计算指定的 XMLNode 对象,构造一个包括节点、子级和属性的 XML 结构的文本表示形式,并以字符串形式返回结果。

对于顶级 XMLDocument 对象(那些用构造函数创建的对象),XMLDocument.toString() 方法首先输出文档的 XML 声明(存储在 XMLDocument.xmlDecl 属性中),随后输出文档的 DOCTYPE 声明(存储在 XMLDocument.docTypeDecl 属性中),接着输出该对象中所有 XML 节点的文本表示形式。如果 XMLDocument.xmlDecl 属性为 null,则不输出 XML 声明。如果 XMLDocument.docTypeDecl 属性为 null,则不输出 DOCTYPE 声明。

返回
String — 表示 XMLNode 对象的字符串。

另请参见

示例 如何使用示例
XMLDocumentExample.as

下例使用 XMLDocument 和 XMLNode 类分析 XML 文档并设置其格式。此示例并未加载外部 XML 文件,而是使用顶级 XML 类来创建 XML 文档,然后对该文档进行分析。
package {
    import flash.display.Sprite;
    import flash.xml.XMLDocument;
    import flash.xml.XMLNode;
    import flash.xml.XMLNodeType;

    public class XMLDocumentExample extends Sprite {
        public function XMLDocumentExample() {
            var result:XMLDocument = new XMLDocument();
            result.ignoreWhite = true;
            result.parseXML(getXMLString());

            var books:Array = parseBooks(result.firstChild);
            trace("books: \n" + books);
        }

        private function parseBooks(node:XMLNode):Array {
            var books:Array = new Array();

            var kids:Array = node.childNodes;
            for each(var item:XMLNode in kids) {
                parseBook(item, books);
            }

            return books;
        }

        private function parseBook(node:XMLNode, books:Array):void {
            var item:Book = new Book();
            item.setPublisher(node.attributes.publisher);
            item.setName(node.attributes.name);
            books.push(item);
        }

        private function getXMLString():String {
            var list:XML = <books>
                                <book publisher="Addison-Wesley" name="Design Patterns" />
                                <book publisher="Addison-Wesley" name="The Pragmatic Programmer" />
                                <book publisher="Addison-Wesley" name="Test Driven Development" />
                                <book publisher="Addison-Wesley" name="Refactoring to Patterns" />
                                <book publisher="O'Reilly Media" name="The Cathedral & the Bazaar" />
                                <book publisher="O'Reilly Media" name="Unit Test Frameworks" />
                            </books>;
            return list.toXMLString();
        }
    }

}
class Book {
    private var publisher:String;
    private var name:String;

    public function setPublisher(publisher:String):void {
        this.publisher = publisher;
    }

    public function setName(name:String):void {
        this.name = name;
    }

    public function toString():String {
        return "[Book name: " + name + " publisher: " + publisher + "]\n";
    }
}