套件 | flash.xml |
類別 | public class XMLNode |
繼承 | XMLNode Object |
子類別 | XMLDocument |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
attributes : Object
包含指定之 XMLNode 實體之所有特質的物件。 | XMLNode | ||
childNodes : Array [唯讀]
指定之 XMLNode 物件的子系陣列。 | XMLNode | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
firstChild : XMLNode
會評估指定的 XMLDocument 物件,並參照父節點之子清單中的第一個子節點。 | XMLNode | ||
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 |
方法 | 定義自 | ||
---|---|---|---|
會建立新的 XMLNode 物件。 | XMLNode | ||
將指定的節點附加到 XML 物件的子清單中。 | XMLNode | ||
會建構及傳回新的 XML 節點,它的類型、名稱、值和特質都與指定的 XML 物件相同。 | XMLNode | ||
會傳回與節點的指定前置詞相關的命名空間 URI。 | XMLNode | ||
會傳回與節點之指定命名空間 URI 相關的前置詞。 | XMLNode | ||
指出指定的 XMLNode 物件是否有子節點。 | XMLNode | ||
指出物件是否有已定義的指定屬性。 | Object | ||
會在 XML 物件之子清單中的 beforeNode 節點前,插入新的子節點。 | XMLNode | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
將指定的 XML 物件從其父輩中移除。 | XMLNode | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會評估指定的 XMLNode 物件、建構 XML 結構的文字表示 (包含節點、子系及特質),並以字串的形式傳回結果。 | XMLNode | ||
會傳回指定之物件的基本值。 | Object |
attributes | 屬性 |
attributes:Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
包含指定之 XMLNode 實體之所有特質的物件。 XMLNode.attributes 物件包含 XMLNode 實體的每個特質會用到的一個變數。 因為這些變數定義為物件的一部分,它們一般都是當做物件的屬性來參照。 每個特質的值會以字串的型式儲存在對應的屬性中。 例如,如果您有名為 color
的特質,而且您要藉由指定 color
為屬性名稱來取得該特質的值,如下列程式碼所示:
var myColor:String = doc.firstChild.attributes.color
實作
public function get attributes():Object
public function set attributes(value:Object):void
childNodes | 屬性 |
childNodes:Array
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定之 XMLNode 物件的子系陣列。 陣列中的每個元素都是 XMLNode 物件的參照,代表子節點。 這是一個唯讀屬性,不能用來操作子節點。 您可以使用 appendChild()
、insertBefore()
和 removeNode()
方法來操作子節點。
對文字節點來說,這個屬性會是未定義的 (nodeType == 3
)。
實作
public function get childNodes():Array
相關 API 元素
firstChild | 屬性 |
public var firstChild:XMLNode
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會評估指定的 XMLDocument 物件,並參照父節點之子清單中的第一個子節點。 如果該節點沒有任何子節點,則這個屬性為 null
。 如果該節點為文字節點,則這個屬性為 undefined
。 這是一個唯讀屬性,不能用來操作子節點;若要操作子節點,請使用 appendChild()
、insertBefore()
和 removeNode()
等方法。
相關 API 元素
lastChild | 屬性 |
public var lastChild:XMLNode
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
參照節點之子清單中最後一個子節點的 XMLNode 值。 如果該節點沒有任何子節點,則 XMLNode.lastChild
屬性為 null
。 這個屬性不能用來操作子節點;若要操作子節點,請使用 appendChild()
、insertBefore()
和 removeNode()
等方法。
相關 API 元素
localName | 屬性 |
localName:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
XML 節點名稱的區域名稱部分。 這是不具命名空間前置詞的元素名稱。 例如,<contact:mailbox/>bob@example.com</contact:mailbox>
節點具有區域名稱 "mailbox" 及前置詞 "contact",這便組成了完整的元素名稱 "contact.mailbox"。
您可以透過 XML 節點物件的 prefix
屬性,存取命名空間前置詞。 nodeName
屬性會傳回完整名稱 (包括前置詞與區域名稱)。
實作
public function get localName():String
namespaceURI | 屬性 |
namespaceURI:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
如果 XML 節點具有前置詞,namespaceURI
會是該前置詞 (URI) 之 xmlns
宣告的值,這通常稱為命名空間 URI。 xmlns
宣告位於目前的節點內,或是在 XML 階層架構中的較高節點內。
如果 XML 節點沒有前置詞,則 namespaceURI
屬性值會根據是否定義預設命名空間而定 (如 xmlns="http://www.example.com/"
中所示)。 如果有預設的命名空間,namespaceURI
屬性值會是預設命名空間的值。 如果沒有預設的命名空間,該節點的 namespaceURI
屬性會是空字串 (""
)。
您可以使用 getNamespaceForPrefix()
方法來識別與特定前置詞相關的命名空間。 namespaceURI
屬性會傳回與節點名稱相關的前置詞。
實作
public function get namespaceURI():String
相關 API 元素
nextSibling | 屬性 |
public var nextSibling:XMLNode
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
參照父節點之子清單中下一個同級節點的 XMLNode 值。 如果該節點沒有下一個同級節點,則這個屬性為 null
。 這個屬性不能用來操作子節點;若要操作子節點,請使用 appendChild()
、insertBefore()
和 removeNode()
等方法。
相關 API 元素
nodeName | 屬性 |
public var nodeName:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
代表 XMLNode 物件之節點名稱的字串。 如果該 XMLNode 物件是 XML 元素 (nodeType == 1
),nodeName
就是代表 XML 檔案中之節點的標籤名稱。 例如,TITLE
就是 HTML TITLE
標籤的 nodeName
。 如果 XMLNode 物件是文字節點 (nodeType == 3
),nodeName 就是 null
。
相關 API 元素
nodeType | 屬性 |
public var nodeType:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
nodeType
常數值,如果是 XML 元素則為 XMLNodeType.ELEMENT_NODE
,如果是文字節點則為 XMLNodeType.TEXT_NODE
。
nodeType
是 W3C DOM Level 1 推薦標準 (http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html) 中,來自於 NodeType 列舉項目的數值。 下表列出這些值:
整數值 | 定義常數 |
---|---|
1 | ELEMENT_NODE |
3 | TEXT_NODE |
5 | ENTITY_REFERENCE_NODE |
7 | PROCESSING_INSTRUCTION_NODE |
9 | DOCUMENT_NODE |
11 | DOCUMENT_FRAGMENT_NODE |
在 Flash Player 中,內建的 XMLNode 類別只支援 XMLNodeType.ELEMENT_NODE
與 XMLNodeType.TEXT_NODE
。
相關 API 元素
nodeValue | 屬性 |
public var nodeValue:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
XMLDocument 物件的節點值。 如果 XMLDocument 物件是文字節點,則 nodeType
為 3,而且 nodeValue
會是節點的文字。 如果 XMLDocument 物件為 XML 元素 (nodeType
為 1),則 nodeValue
為 null
並且是唯讀的。
相關 API 元素
parentNode | 屬性 |
public var parentNode:XMLNode
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
XMLNode 值,用來參照指定之 XML 物件的父節點,或者如果此節點沒有父節點,則傳回 null
。 這是一個唯讀屬性,不能用來操作子節點;若要操作子節點,請使用 appendChild()
、insertBefore()
和 removeNode()
等方法。
相關 API 元素
prefix | 屬性 |
prefix:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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, Flash Lite 4 |
參照父節點之子清單中前一個同級節點的 XMLNode 值。 如果這個節點沒有上一個相同階層節點,則這個屬性的值為 null。 這個屬性不能用來操作子節點;若要操作子節點,請使用 appendChild()
、insertBefore()
和 removeNode()
等方法。
相關 API 元素
XMLNode | () | 建構函式 |
public function XMLNode(type:uint, value:String)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會建立新的 XMLNode 物件。 您必須先使用建構函式建立 XMLNode 物件,然後才能呼叫 XMLNode 類別的任何方法。
注意:請使用 createElement()
與 createTextNode()
方法,將元素與文字節點加入到 XML 文件樹狀結構。
type:uint — 節點類型: 如果是 XML 元素則為 1,如果是文字節點則為 3。
| |
value:String — 建立新的 XMLNode 物件時所剖析的 XML 文字。
|
相關 API 元素
appendChild | () | 方法 |
public function appendChild(node:XMLNode):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
將指定的節點附加到 XML 物件的子清單中。 這個方法會直接在 childNode
參數所參照的節點上操作;它不會附加節點副本。 如果要附加的節點已經存在另一個樹狀結構中,將節點附加到新的位置上會將節點從現有位置移除。 如果 childNode
參數會參照已經存在另一個 XML 樹狀結構中的節點,則附加的子節點會在從目前的父節點中移除後放置在新的樹狀結構中。
參數
node:XMLNode — 代表要從目前位置移到 my_xml 物件之子清單中的 XMLNode 節點。
|
cloneNode | () | 方法 |
public function cloneNode(deep:Boolean):XMLNode
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會建構及傳回新的 XML 節點,它的類型、名稱、值和特質都與指定的 XML 物件相同。 如果將 deep
設定為 true
,則所有子節點都會以遞迴方式來複製,因此最後會產生與原始物件的文件樹狀結構完全相同的副本。
傳回的複製節點與被複製項目的樹狀結構已沒有關聯。 因此,nextSibling
、parentNode
及 previousSibling
都會有 null
值。 如果 deep
參數設為 false
或是 my_xml
節點沒有子節點,firstChild
及 lastChild
也會是 null。
參數
deep:Boolean — Boolean 值,如果設定為 true ,則會以遞迴方式複製指定之 XML 物件的子系。
|
XMLNode — XMLNode 物件。
|
getNamespaceForPrefix | () | 方法 |
public function getNamespaceForPrefix(prefix:String):String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會傳回與節點的指定前置詞相關的命名空間 URI。 若要判斷此 URI,getPrefixForNamespace()
會視需要從節點搜尋到 XML 階層架構,並傳回指定 prefix
之第一個 xmlns
宣告的命名空間 URI。
如果沒有定義指定字首的名稱空間,方法會傳回 null
。
如果您指定空字串 (""
) 做為 prefix
,且已為節點定義預設的命名空間 (如 xmlns="http://www.example.com/"
中所示),此方法會傳回預設的命名空間 URI。
參數
prefix:String — 方法對其傳回相關聯命名空間的前置詞。
|
String — 與指定前置詞相關聯的命名空間。
|
相關 API 元素
getPrefixForNamespace | () | 方法 |
public function getPrefixForNamespace(ns:String):String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會傳回與節點之指定命名空間 URI 相關的前置詞。 若要判斷此前置詞,getPrefixForNamespace()
會視需要從節點搜尋到 XML 階層架構,並傳回第一個 xmlns
宣告的前置詞,其命名空間 URI 必須符合 ns
。
如果指定的 URI 沒有指定 xmlns
,此方法便會傳回 null
。 如果指定的 URI 有指定 xmlns
,但是沒有與該指定相關的前置詞,此方法便會傳回空字串 (""
)。
參數
ns:String — 方法對其傳回相關聯前置詞的命名空間 URI。
|
String — 與指定的命名空間相關聯的前置詞。
|
相關 API 元素
hasChildNodes | () | 方法 |
insertBefore | () | 方法 |
public function insertBefore(node:XMLNode, before:XMLNode):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會在 XML 物件之子清單中的 beforeNode
節點前,插入新的子節點。 如果 beforeNode
參數未定義或為 null,便會使用 appendChild()
方法加入節點。 如果 beforeNode
不是 my_xml
的子系,插入作業便會失敗。
參數
node:XMLNode — 要插入的 XMLNode 物件。
| |
before:XMLNode — 在 childNode 之插入點之前的 XMLNode 物件。
|
相關 API 元素
removeNode | () | 方法 |
public function removeNode():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
將指定的 XML 物件從其父輩中移除。 同時刪除節點的所有後代。
toString | () | 方法 |
public function toString():String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會評估指定的 XMLNode 物件、建構 XML 結構的文字表示 (包含節點、子系及特質),並以字串的形式傳回結果。
如果是最上層的 XMLDocument 物件 (以建構函式所建立的物件),XMLDocument.toString()
方法會先輸出該文件的 XML 宣告 (儲存在 XMLDocument.xmlDecl
屬性中),接著會是文件的 DOCTYPE
宣告 (儲存在 XMLDocument.docTypeDecl
屬性中),然後才是物件中所有 XML 節點的文字表示。 如果 XMLDocument.xmlDecl
屬性為 null
,則不會輸出 XML 宣告。 如果 XMLDocument.docTypeDecl
屬性為 null
,則不會輸出 DOCTYPE
宣告。
String — 代表 XMLNode 物件的字串。
|
相關 API 元素
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