| 套件 | 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
隱藏繼承公用屬性
顯示繼承公用屬性