套件 | flash.xml |
類別 | public class XMLDocument |
繼承 | XMLDocument XMLNode Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
XMLDocument 類別,以及 XMLNode 與 XMLNodeType,都因舊版相容性而存在。 現在您可以在 URLLoader 類別中找到載入 XML 文件的功能。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
attributes : Object
包含指定之 XMLNode 實體之所有特質的物件。 | XMLNode | ||
childNodes : Array [唯讀]
指定之 XMLNode 物件的子系陣列。 | XMLNode | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
docTypeDecl : Object = null
指定關於 XML 文件之 DOCTYPE 宣告的資訊。 | XMLDocument | ||
firstChild : XMLNode
會評估指定的 XMLDocument 物件,並參照父節點之子清單中的第一個子節點。 | XMLNode | ||
idMap : Object
包含 XML 節點的 物件,這些節點已經被指派 id 特質。 | 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
為 null,則不會輸出任何 DOCTYPE
宣告。
idMap | 屬性 |
public var idMap:Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
包含 XML 節點的 Object,這些節點已經有指定 id
特質。 物件的屬性名稱 (每個物件都包含一個節點) 會與 id
特質的值相符。
請考量下列 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
屬性是具有下列三個屬性的 Object: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.xmlDecl
屬性的內容,然後才會輸出 XML 物件中的其他任何文字。 如果 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 物件。 新的節點在初始時並沒有父節點、子節點和相同階層節點。 這個方法會傳回新建立之 XML 物件的參照,代表元素。 這個方法和 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, 03:47 PM Z