包 | flash.xml |
类 | public class XMLDocument |
继承 | XMLDocument XMLNode Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
使用 XMLDocument 类以及 XMLNode 和 XMLNodeType 是为了保持向后兼容。用于加载 XML 文档的功能现在可在 URLLoader 类中找到。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
attributes : Object
一个对象,其中包含指定的 XMLNode 实例的所有属性。 | XMLNode | ||
childNodes : Array [只读]
指定的 XMLNode 对象子级的数组。 | XMLNode | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
docTypeDecl : Object = null
指定有关 XML 文档的 DOCTYPE 声明的信息。 | XMLDocument | ||
firstChild : XMLNode
计算指定的 XMLDocument 对象,并引用父节点的子级列表中的第一个子级。 | XMLNode | ||
idMap : Object
一个对象,其中包含分配了 id 属性的 XML 的节点。 | XMLDocument | ||
ignoreWhite : Boolean = false
当设置为 true 时,在分析过程中将放弃仅包含空白的文本节点。 | XMLDocument | ||
lastChild : XMLNode
一个 XMLNode 值,它引用节点的子级列表中的最后一个子级。 | XMLNode | ||
localName : String [只读]
XML 节点名称的本地名称部分。 | XMLNode | ||
namespaceURI : String [只读]
如果 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 [只读]
XML 节点名称的前缀部分。 | XMLNode | ||
previousSibling : XMLNode
一个 XMLNode 值,它引用父级节点的子级列表中的前一个同级。 | XMLNode | ||
xmlDecl : Object = null
一个字符串,指定有关文档的 XML 声明的信息。 | XMLDocument |
方法 | 由以下参数定义 | ||
---|---|---|---|
XMLDocument(source:String = null)
创建新的 XMLDocument 对象。 | XMLDocument | ||
将指定的节点追加到 XML 对象的子级列表中。 | XMLNode | ||
构造并返回一个类型、名称、值和属性与指定的 XML 对象均相同的新 XML 节点。 | XMLNode | ||
使用参数中指定的名称来创建新的 XMLNode 对象。 | XMLDocument | ||
使用指定的文本创建一个新的 XML 文本节点。 | XMLDocument | ||
返回与节点的指定前缀相关联的命名空间 URI。 | XMLNode | ||
返回与节点的指定命名空间 URI 相关联的前缀。 | XMLNode | ||
表示指定的 XMLNode 对象是否具有子节点。 | XMLNode | ||
表示对象是否已经定义了指定的属性。 | Object | ||
将新的子节点插入到 XML 对象的子级列表中,且在 beforeNode 节点之前。 | XMLNode | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
分析 value 参数中指定的 XML 文本,并使用结果 XML 树填充指定的 XMLDocument 对象。 | XMLDocument | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从指定 XML 对象的父级中删除该对象。 | XMLNode | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
[覆盖]
返回 XML 对象的字符串表示形式。 | XMLDocument | ||
返回指定对象的原始值。 | Object |
docTypeDecl | 属性 |
public var docTypeDecl:Object = null
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定有关 XML 文档的 DOCTYPE
声明的信息。在已经将 XML 文本分析为 XMLDocument 对象后,该 XMLDocument 对象的 XMLDocument.docTypeDecl
属性就会被设置为该 XML 文档的 DOCTYPE
声明的文本(例如,<!DOCTYPE
greeting SYSTEM "hello.dtd">
)。使用 DOCTYPE
声明的字符串表示形式而不是 XMLNode 对象设置该属性。
旧的 ActionScript 的 XML 分析程序不是具有验证功能的分析程序。分析程序读取 DOCTYPE
声明,并将其存储在 XMLDocument.docTypeDecl
属性中,但不执行 DTD 验证。
如果在分析操作过程中未遇到 DOCTYPE
声明,则 XMLDocument.docTypeDecl
属性被设置为 null
。XML.toString()
方法将在 XML 声明存储在 XML.xmlDecl
中后,并在输出该 XML 对象中的任何其它文本之前,立即输出 XML.docTypeDecl
的内容。如果 XMLDocument.docTypeDecl
为空,则不输出 DOCTYPE
声明。
idMap | 属性 |
public var idMap:Object
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个对象,其中包含分配了 id
属性的 XML 的节点。对象(每个对象包含一个节点)的属性 (property) 名称与 id
属性 (attribute) 的值匹配。
请考虑下面的 XMLDocument 对象:
<employee id='41'> <name> John Doe </name> <address> 601 Townsend St. </address> </employee> <employee id='42'> <name> Jane Q. Public </name> </employee> <department id="IT"> Information Technology </department>
在此示例中,该 XMLDocument 对象的 idMap
属性是具有以下三个属性的对象:41
、42
和 IT
。其中每个属性都是具有匹配的 id
值的 XMLNode。例如,idMap
对象的 IT
属性为下面的节点:
<department id="IT"> Information Technology </department>
您必须对此 XMLDocument 对象使用 parseXML()
方法才能对 idMap
属性进行实例化。
如果多个 XMLNode 具有相同的 id
值,则 idNode
对象的匹配属性是分析的最后一个节点的属性。例如:
var x1:XML = new XMLDocument("<a id='1'><b id='2' /><c id='1' /></a>"); x2 = new XMLDocument(); x2.parseXML(x1); trace(x2.idMap['1']);
<c>
节点:
<c id='1' />
ignoreWhite | 属性 |
public var ignoreWhite:Boolean = false
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当设置为 true
时,在分析过程中将放弃仅包含空白的文本节点。带有前导或尾随空白的文本节点不受影响。默认设置为 false
。
可以为单个 XMLDocument 对象设置 ignoreWhite
属性,如以下代码所示:
my_xml.ignoreWhite = true;
xmlDecl | 属性 |
public var xmlDecl:Object = null
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个字符串,指定有关文档的 XML 声明的信息。将 XML 文档分析为 XMLDocument 对象之后,此属性被设置为文档的 XML 声明的文本。使用 XML 声明的字符串表示形式而不是 XMLNode 对象设置该属性。如果在分析操作过程中未遇到 XML 声明,则该属性被设置为 null
。XMLDocument.toString()
方法在输出 XML 对象中的任何其它文本之前输出 XML.xmlDecl
属性的内容。如果 XML.xmlDecl
属性包含 null
,则不输出 XML 声明。
XMLDocument | () | 构造函数 |
public function XMLDocument(source:String = null)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
创建新的 XMLDocument 对象。调用 XMLDocument 类的任何方法之前,必须使用该构造函数创建一个 XMLDocument 对象。
注意:使用 createElement()
和 createTextNode()
方法可以将元素和文本节点添加到 XML 文档树中。
source:String (default = null ) — 经解析用以创建新 XMLDocument 对象的 XML 文本。
|
相关 API 元素
createElement | () | 方法 |
public function createElement(name:String):XMLNode
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
使用参数中指定的名称来创建新的 XMLNode 对象。新节点开始时没有父级、子级和同级。该方法返回一个对新创建的表示该元素的 XMLNode 对象的引用。此方法和 XMLDocument.createTextNode()
方法都是为 XMLDocument 对象创建节点的构造函数方法。
参数
name:String — 要创建的 XMLDocument 元素的标签名称。
|
XMLNode — XMLNode 对象。
|
相关 API 元素
createTextNode | () | 方法 |
public function createTextNode(text:String):XMLNode
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
使用指定的文本创建一个新的 XML 文本节点。该新节点开始时没有父级,且文本节点不能有子级或同级。此方法返回对表示新文本节点的 XMLDocument 对象的引用。此方法和 XMLDocument.createElement()
方法都是为 XMLDocument 对象创建节点的构造函数方法。
参数
text:String — 用于创建新文本节点的文本。
|
XMLNode — XMLNode 对象。
|
相关 API 元素
parseXML | () | 方法 |
toString | () | 方法 |
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"; } }
Tue Jun 12 2018, 11:04 AM Z