| 包 | flash.xml |
| 类 | public class XMLNode |
| 继承 | XMLNode Object |
| 子类 | XMLDocument |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| attributes : Object 一个对象,其中包含指定的 XMLNode 实例的所有属性。 | XMLNode | ||
| childNodes : Array [只读 (read-only)] 指定的 XMLNode 对象子级的数组。 | XMLNode | ||
![]() | constructor : 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 | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| 方法 | 定义方 | ||
|---|---|---|---|
创建新的 XMLNode 对象。 | XMLNode | ||
将指定的节点追加到 XML 对象的子级列表中。 | XMLNode | ||
构造并返回一个类型、名称、值和属性与指定的 XML 对象均相同的新 XML 节点。 | XMLNode | ||
返回与节点的指定前缀相关联的命名空间 URI。 | XMLNode | ||
返回与节点的指定命名空间 URI 相关联的前缀。 | XMLNode | ||
指示指定的 XMLNode 对象是否具有子节点。 | XMLNode | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
将新的子节点插入到 XML 对象的子级列表中,且在 beforeNode 节点之前。 | XMLNode | ||
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
从指定 XML 对象的父级中删除该对象。 | XMLNode | ||
![]() |
设置循环操作动态属性的可用性。 | Object | |
计算指定的 XMLNode 对象,构造一个包括节点、子级和属性的 XML 结构的文本表示形式,并以字符串形式返回结果。 | XMLNode | ||
![]() |
返回指定对象的原始值。 | 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。下表列出了这些值:
| 整数值 | 已定义的常量 |
|---|---|
| 1 | ELEMENT_NODE |
| 2 | ATTRIBUTE_NODE |
| 3 | TEXT_NODE |
| 4 | CDATA_SECTION_NODE |
| 5 | ENTITY_REFERENCE_NODE |
| 6 | ENTITY_NODE |
| 7 | PROCESSING_INSTRUCTION_NODE |
| 8 | COMMENT_NODE |
| 9 | DOCUMENT_NODE |
| 10 | DOCUMENT_TYPE_NODE |
| 11 | DOCUMENT_FRAGMENT_NODE |
| 12 | NOTATION_NODE |
在 Flash Player 中,内置 XMLNode 类仅支持 XMLNodeType.ELEMENT_NODE 和 XMLNodeType.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),则 nodeValue 为 null 且为只读。
另请参见
| 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,则递归克隆所有子节点,这将得到一个与原始对象文档树完全相同的副本。
返回的克隆节点与被克隆项目的树不再相关联。因此,nextSibling、parentNode 和 previousSibling 值都为 null。如果 deep 参数设置为 false,或者 my_xml 节点没有子节点,则 firstChild 和 lastChild 同样为空。
参数
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:XMLNode —
childNode 的插入点之前的 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 对象的字符串。 |
另请参见
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";
}
}