套件 | 最上層 |
類別 | public final dynamic class XML |
繼承 | XML Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
無論 XML 物件具有簡單內容還是複雜內容,使用 toXMLString()
方法都會傳回 XML 物件的字串形式。
注意: ActionScript 2.0 的 XML 類別 (以及相關類別) 已經重新命名為 XMLDocument 並移入 flash.xml 套件中。 此類別已包括在 ActionScript 3.0 中,以提供舊版相容性。
詳細資訊
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
ignoreComments : Boolean [靜態]
會決定當 XML 物件剖析來源 XML 資料時,是否要忽略 XML 註解。 | XML | ||
ignoreProcessingInstructions : Boolean [靜態]
會決定當 XML 物件剖析來源 XML 資料時,是否要忽略 XML 處理指示。 | XML | ||
ignoreWhitespace : Boolean [靜態]
會決定在進行解析時,是否要忽略文字節點開頭與結尾的空白字元。 | XML | ||
prettyIndent : int [靜態]
決定在 XML.prettyPrinting 屬性設定為 true 時,toString() 與 toXMLString() 方法所套用的縮排量。 | XML | ||
prettyPrinting : Boolean [靜態]
決定 toString() 和 toXMLString() 方法是否會一般化部分標籤之間的空白字元。 | XML |
方法 | 定義自 | ||
---|---|---|---|
會建立新的 XML 物件。 | XML | ||
會將命名空間加入到 XML 物件的範圍內命名空間組。 | XML | ||
會將指定的子系附加到 XML 物件之屬性的結尾。 | XML | ||
傳回名稱符合 attributeName 參數之特質的 XML 值。 | XML | ||
會傳回指定之 XML 物件的特質值清單。 | XML | ||
列出 XML 物件的子系。 | XML | ||
會識別此 XML 物件在其父輩的內容中,從零開始的索引位置。 | XML | ||
將 XML 物件的子系列在其出現的序列中。 | XML | ||
列出包含 XML 註解的 XML 物件屬性。 | XML | ||
比較 XML 物件與指定的 value 參數。 | XML | ||
會傳回指定之 XML 物件的副本。 | XML | ||
[靜態]
傳回將下列屬性設定為預設值的物件: ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent 和 prettyPrinting。 | XML | ||
傳回 XML 物件 (具有指定的 name 參數) 的所有後代 (子系、孫系、曾孫系等等)。 | XML | ||
列出 XML 物件的元素。 | XML | ||
檢查 XML 物件是否包含複雜內容。 | XML | ||
檢查物件是否具有 p 參數所指定的屬性。 | XML | ||
檢查 XML 物件是否包含簡單內容。 | XML | ||
根據 XML 物件的父輩列出該物件的命名空間。 | XML | ||
在此 XML 物件中的 child1 參數後插入指定的 child2 參數,並傳回產生的物件。 | XML | ||
在此 XML 物件中的 child1 參數前插入指定的 child2 參數,並傳回產生的物件。 | XML | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
若為 XML 物件,這個方法永遠都會傳回整數 1。 | XML | ||
提供 XML 物件之限定名稱的地區名稱部分。 | XML | ||
提供 XML 物件的限定名稱。 | XML | ||
如果沒有提供任何參數,便會提供與此 XML 物件之限定名稱有關聯的命名空間。 | XML | ||
列出在 XML 物件的父輩內容中與該 XML 物件有關聯的命名空間宣告。 | XML | ||
指定節點的類型:文字、註解、處理指示、特質或元素。 | XML | ||
針對 XML 物件及所有後代 XML 物件,合併鄰接的文字節點並刪除空的文字節點。 | XML | ||
會傳回 XML 物件的父輩。 | XML | ||
將提供之 child 物件的副本,在 XML 元素中任何現有的 XML 屬性之前插入。 | XML | ||
如果有提供 name 參數,便會列出 XML 物件的所有子系 (其中包含具有該名稱的處理指示)。 | XML | ||
檢查屬性 p 是否位於屬性組 (可在套用至 XMLList 物件之 for..in 陳述式中重複) 中。 | XML | ||
會移除此物件及所有後代的指定命名空間。 | XML | ||
使用指定的 value 參數取代 propertyName 參數所指定的屬性。 | XML | ||
使用指定的 XML 屬性組 (由 value 參數提供) 取代 XML 物件的子系屬性。 | XML | ||
將 XML 物件的區域名稱變更為指定的 name 參數。 | XML | ||
將 XML 物件的名稱設定為指定的限定名稱或特質名稱。 | XML | ||
會設定與 XML 物件有關聯的命名空間。 | XML | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
[靜態]
設定下列 XML 屬性的值: ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent 和 prettyPrinting。 | XML | ||
[靜態]
擷取下列屬性: ignoreComments、ignoreProcessingInstructions、ignoreWhitespace、prettyIndent 和 prettyPrinting。 | XML | ||
會傳回代表 XML 文字節點的 XML 物件之所有 XML 屬性的 XMLList 物件。 | XML | ||
提供可覆寫的方法,用於自訂 XML 物件中值的 JSON 編碼。 | XML | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回 XML 物件的字串形式。 | XML | ||
會傳回 XML 物件的字串形式。 | XML | ||
會傳回 XML 物件。 | XML |
ignoreComments | 屬性 |
ignoreComments:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會決定當 XML 物件剖析來源 XML 資料時,是否要忽略 XML 註解。 根據預設,會忽略註解 (true
)。 若要包括 XML 註解,請將此屬性設定為 false
。 ignoreComments
屬性只會用於 XML 解析期間,而不會在呼叫任何方法 (如 myXMLObject.child(*).toXMLString()
) 時使用。 如果來源 XML 包括註解節點,在進行 XML 剖析時便會保留放棄或這些節點。
實作
public static function get ignoreComments():Boolean
public static function set ignoreComments(value:Boolean):void
相關 API 元素
範例 ( 如何使用本範例 )
XML.ignoreComments
設定為 false
及設定為 true
的影響:
XML.ignoreComments = false; var xml1:XML = <foo> <!-- comment --> </foo>; trace(xml1.toXMLString()); // <foo><!-- comment --></foo> XML.ignoreComments = true; var xml2:XML = <foo> <!-- example --> </foo>; trace(xml2.toXMLString()); // <foo/>
ignoreProcessingInstructions | 屬性 |
ignoreProcessingInstructions:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會決定當 XML 物件剖析來源 XML 資料時,是否要忽略 XML 處理指示。 根據預設,會忽略處理指示 (true
)。 若要包括 XML 處理指示,請將此屬性設定為 false
。 ignoreProcessingInstructions
屬性只會用於 XML 解析期間,而不會在呼叫任何方法 (如 myXMLObject.child(*).toXMLString()
) 時使用。 如果來源 XML 包括處理指示節點,在進行 XML 剖析時便會保留或放棄這些節點。
實作
public static function get ignoreProcessingInstructions():Boolean
public static function set ignoreProcessingInstructions(value:Boolean):void
相關 API 元素
範例 ( 如何使用本範例 )
XML.ignoreProcessingInstructions
設定為 false
及設定為 true
的影響:
XML.ignoreProcessingInstructions = false; var xml1:XML = <foo> <?exampleInstruction ?> </foo>; trace(xml1.toXMLString()); // <foo><?exampleInstruction ?></foo> XML.ignoreProcessingInstructions = true; var xml2:XML = <foo> <?exampleInstruction ?> </foo>; trace(xml2.toXMLString()); // <foo/>
ignoreWhitespace | 屬性 |
ignoreWhitespace:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會決定在進行解析時,是否要忽略文字節點開頭與結尾的空白字元。 根據預設,會忽略空白字元 (true
)。 如果文字節點是 100% 的空白字元,而且 ignoreWhitespace
屬性設定為 true
,就不會建立該節點。 若要在文字節點中顯示空白字元,請將 ignoreWhitespace
屬性設定為 false
。
當您建立 XML 物件,它會快取 ignoreWhitespace
屬性目前的值。變更 ignoreWhitespace
不會變更現有 XML 物件的行為。
實作
public static function get ignoreWhitespace():Boolean
public static function set ignoreWhitespace(value:Boolean):void
範例 ( 如何使用本範例 )
XML.ignoreWhitespace
設定為 false
及設定為 true
的影響:
XML.ignoreWhitespace = false; var xml1:XML = <foo> </foo>; trace(xml1.children().length()); // 1 XML.ignoreWhitespace = true; var xml2:XML = <foo> </foo>; trace(xml2.children().length()); // 0
prettyIndent | 屬性 |
prettyIndent:int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會決定當 XML.prettyPrinting
屬性設定為 true
時,toString()
與 toXMLString()
方法所套用的縮排量。 縮排會以空白字元 (而非定位點字元) 套用。 預設值為 2
。
實作
public static function get prettyIndent():int
public static function set prettyIndent(value:int):void
相關 API 元素
範例 ( 如何使用本範例 )
XML.prettyIndent
靜態屬性的影響:
var xml:XML = <foo><bar/></foo>; XML.prettyIndent = 0; trace(xml.toXMLString()); XML.prettyIndent = 1; trace(xml.toXMLString()); XML.prettyIndent = 2; trace(xml.toXMLString());
prettyPrinting | 屬性 |
prettyPrinting:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會決定 toString()
和 toXMLString()
方法是否會一般化某些標籤之間的空白字元。 預設值是 true
。
實作
public static function get prettyPrinting():Boolean
public static function set prettyPrinting(value:Boolean):void
相關 API 元素
範例 ( 如何使用本範例 )
XML.prettyPrinting
靜態屬性的影響:
var xml:XML = <foo><bar/></foo>; XML.prettyPrinting = false; trace(xml.toXMLString()); XML.prettyPrinting = true; trace(xml.toXMLString());
XML | () | 建構函式 |
public function XML(value:Object)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會建立新的 XML 物件。 您必須先使用建構函式來建立 XML 物件,然後才能呼叫 XML 類別的任何方法。
無論 XML 物件具有簡單內容還是複雜內容,使用 toXMLString()
方法都會傳回 XML 物件的字串形式。
value:Object — 可以使用最上層的 XML() 函數轉換成 XML 的任何物件。
|
相關 API 元素
範例 ( 如何使用本範例 )
// // Requires: // - TextArea control UI component in the Flash Professional Library. // import fl.controls.TextArea; var xml:XML; var urlRequest:URLRequest = new URLRequest("http://www.helpexamples.com/flash/xml/menu.xml"); var urlLoader:URLLoader = new URLLoader(); urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); var textArea:TextArea = new TextArea(); textArea.move(5, 5); textArea.setSize(stage.stageWidth - 10, stage.stageHeight - 10); addChild(textArea); function urlLoader_complete(evt:Event):void { xml = new XML(evt.currentTarget.data); textArea.text = xml.toXMLString(); }
var xml:XML; var textArea:TextField = new TextField(); textArea.width = 300; var urlRequest:URLRequest = new URLRequest("http://www.helpexamples.com/flash/xml/menu.xml"); var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); function urlLoader_complete(evt:Event):void { xml = new XML(evt.target.data); textArea.text = xml.toXMLString(); addChild(textArea); }
addNamespace | () | 方法 |
AS3 function addNamespace(ns:Object):XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會將命名空間加入到 XML 物件的範圍內命名空間組。 如果該命名空間已經存在於 XML 物件的範圍內命名空間中 (具有符合指定之參數的前置詞),現有命名空間的前置詞便會設定為 undefined
。 如果輸入參數是 Namespace 物件,便會直接使用該參數。 如果它是 QName 物件,則會使用輸入參數的 URI 來建立新的命名空間;否則,便會將其轉換成 String,並從該 String 建立命名空間。
參數
ns:Object — 要加入至 XML 物件的命名空間。
|
XML — 新的 XML 物件,具有加入的命名空間。
|
範例 ( 如何使用本範例 )
var xml1:XML = <ns:foo xmlns:ns="www.example.com/ns" />; var nsNamespace:Namespace = xml1.namespace(); var xml2:XML = <bar />; xml2.addNamespace(nsNamespace); trace(xml2.toXMLString()); // <bar xmlns:ns="www.example.com/ns"/>
appendChild | () | 方法 |
AS3 function appendChild(child:Object):XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會將指定的子系附加到 XML 物件之屬性的結尾。 appendChild()
方法接受 XML 物件、XMLList 物件,或是在之後轉換成 String 的其他任何資料類型。
使用 delete
(XML) 運算子可移除 XML 節點。
參數
child:Object — 要附加的 XML 物件。
|
XML — 產生的 XML 物件。
|
相關 API 元素
範例 ( 如何使用本範例 )
var xml:XML = <body> <p>hello</p> </body>; xml.appendChild(<p>world</p>); trace(xml.p[0].toXMLString()); // <p>hello</p> trace(xml.p[1].toXMLString()); // <p>world</p>
attribute | () | 方法 |
AS3 function attribute(attributeName:*):XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回名稱符合 attributeName
參數之特質的 XML 值。 在 XML 元素內找到的特質。 在下列範例中,該元素具有名為 "gender
" 的特質,其值為 "boy
":<first gender="boy">John</first>
。
attributeName
參數可以是任何資料類型;不過,最常使用的資料類型是 String。 當傳遞非 QName 物件的任何物件時,attributeName
參數會使用 toString()
方法將該參數轉換成字串。
如果您需要限定名稱參照,即可傳入一個 QName 物件。 QName 物件會定義命名空間及區域名稱,以便您可以用來定義特質的限定名稱。 因此,呼叫 attribute(qname)
與呼叫 attribute(qname.toString())
是不同的。
參數
attributeName:* — 特質的名稱。
|
XMLList — XMLList 物件或是空的 XMLList 物件。 在尚未定義特質值時,會傳回空的 XMLList 物件。
|
相關 API 元素
範例 ( 如何使用本範例 )
attribute()
方法中的 QName 物件。 localName
屬性為 attr
而 namespace
屬性為 ns
。
var xml:XML = <ns:node xmlns:ns = "http://uri" ns:attr = '7' /> var qn:QName = new QName("http://uri", "attr"); trace (xml.attribute(qn)); // 7
attribute()
方法,而不要使用特質識別名稱 (@) 運算子,如下列範例所示:
var xml:XML = <example class="first" /> trace(xml.attribute("class"));
attributes | () | 方法 |
AS3 function attributes():XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回指定之 XML 物件的特質值清單。 搭配 attributes()
方法使用 name()
方法可傳回特質的名稱。 xml.attributes()
的使用方式相當於 xml.@*
。
XMLList — 特質值的清單。
|
相關 API 元素
範例 ( 如何使用本範例 )
var xml:XML=<example id='123' color='blue'/> trace(xml.attributes()[1].name()); //color
var xml:XML = <example id='123' color='blue'/> var attNamesList:XMLList = xml.@*; trace (attNamesList is XMLList); // true trace (attNamesList.length()); // 2 for (var i:int = 0; i < attNamesList.length(); i++) { trace (typeof (attNamesList[i])); // xml trace (attNamesList[i].nodeKind()); // attribute trace (attNamesList[i].name()); // id and color }
child | () | 方法 |
AS3 function child(propertyName:Object):XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
列出 XML 物件的子系。 XML 子系為 XML 元素、文字節點、註解或處理指示。
使用 propertyName
參數可列出特定 XML 子系的內容。 例如,若要傳回名為 <first>
的子系內容,請在 XML 物件上呼叫 child("first")
。您可以使用子系的索引號碼來產生相同的結果。 索引號碼可識別子系在其他 XML 子系清單中的位置。例如,child(0)
會傳回清單中的第一個子系。
請使用星號 (*) 來輸出 XML 文件中的所有子系。 例如,doc.child("*")
。
搭配 child()
方法的星號 (*) 參數使用 length()
方法可輸出子系的總數。 例如,numChildren = doc.child("*").length()
。
參數
propertyName:Object — XML 子系的元素名稱或整數。
|
XMLList — 子節點的 XMLList 物件,與輸入參數相符。
|
相關 API 元素
範例 ( 如何使用本範例 )
child()
方法來識別具有指定之名稱的子元素:
var xml:XML = <foo> <bar>text1</bar> <bar>text2</bar> </foo>; trace(xml.child("bar").length()); // 2 trace(xml.child("bar")[0].toXMLString()); // <bar>text1</bar> trace(xml.child("bar")[1].toXMLString()); // <bar>text2</bar>
childIndex | () | 方法 |
AS3 function childIndex():int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會識別此 XML 物件在其父輩的內容中,從零開始的索引位置。
傳回值int — 物件的位置。 傳回 -1 以及正整數。
|
範例 ( 如何使用本範例 )
childIndex()
方法的使用方式:
var xml:XML = <foo> <bar /> text <bob /> </foo>; trace(xml.bar.childIndex()); // 0 trace(xml.bob.childIndex()); // 2
children | () | 方法 |
AS3 function children():XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
將 XML 物件的子系列在其出現的序列中。 XML 子系為 XML 元素、文字節點、註解或處理指示。
傳回值XMLList — XML 物件子系的 XMLList 物件。
|
範例 ( 如何使用本範例 )
children()
方法的使用方式:
XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var xml:XML = <foo id="22"> <bar>44</bar> text <!-- comment --> <?instruction ?> </foo>; trace(xml.children().length()); // 4 trace(xml.children()[0].toXMLString()); // <bar>44</bar> trace(xml.children()[1].toXMLString()); // text trace(xml.children()[2].toXMLString()); // <!-- comment --> trace(xml.children()[3].toXMLString()); // <?instruction ?>
comments | () | 方法 |
AS3 function comments():XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
列出包含 XML 註解的 XML 物件屬性。
傳回值XMLList — 包含註解的 XMLList 物件屬性。
|
範例 ( 如何使用本範例 )
comments()
方法的使用方式:
XML.ignoreComments = false; var xml:XML = <foo> <!-- example --> <!-- example2 --> </foo>; trace(xml.comments().length()); // 2 trace(xml.comments()[1].toXMLString()); // <!-- example2 -->
contains | () | 方法 |
AS3 function contains(value:XML):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會比較 XML 物件與指定的 value
參數。
參數
value:XML — 要與目前 XML 物件比較的值。
|
Boolean — 如果 XML 物件符合 value 參數,則為 true ,否則為 false 。
|
範例 ( 如何使用本範例 )
contains()
方法的使用方式:
var xml:XML = <order> <item>Rice</item> <item>Kung Pao Shrimp</item> </order>; trace(xml.item[0].contains(<item>Rice</item>)); // true trace(xml.item[1].contains(<item>Kung Pao Shrimp</item>)); // true trace(xml.item[1].contains(<item>MSG</item>)); // false
copy | () | 方法 |
AS3 function copy():XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回指定之 XML 物件的副本。 此副本為整個節點樹狀結構的重製。 複製的 XML 物件沒有父輩,而且會在您嘗試呼叫 parent()
方法時傳回 null
。
XML — 物件的副本。
|
範例 ( 如何使用本範例 )
copy()
方法建立 XML 物件的新實體。 當您修改副本時,原始物件會維持不變:
var xml1:XML = <foo />; var xml2:XML = xml1.copy(); xml2.appendChild(<bar />); trace(xml1.bar.length()); // 0 trace(xml2.bar.length()); // 1
defaultSettings | () | 方法 |
AS3 static function defaultSettings():Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
傳回將下列屬性設定為預設值的物件:ignoreComments
、ignoreProcessingInstructions
、ignoreWhitespace
、prettyIndent
和 prettyPrinting
。 預設值如下所示:
ignoreComments = true
ignoreProcessingInstructions = true
ignoreWhitespace = true
prettyIndent = 2
prettyPrinting = true
注意: 請不要將這個方法套用到 XML 類別的實體,而是將其套用到 XML
,如下列程式碼所示:var df:Object = XML.defaultSettings()
。
Object — 將屬性設定為預設值的物件。
|
相關 API 元素
XML.ignoreProcessingInstructions
XML.ignoreWhitespace
XML.prettyIndent
XML.prettyPrinting
XML.setSettings()
XML.settings()
範例 ( 如何使用本範例 )
XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
descendants | () | 方法 |
AS3 function descendants(name:Object = *):XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
傳回 XML 物件 (具有指定的 name
參數) 的所有後代 (子系、孫系、曾孫系等等)。 name
是選擇性的參數。 name
參數可以是 QName 物件、String 資料類型,或是會在之後轉換成 String 資料類型的其他任何資料類型。
若要傳回所有後代,請使用 "*" 參數。 如果沒有傳遞任何參數,便會傳遞 "*" 字串,並傳回 XML 物件的所有後代。
參數
name:Object (default = * ) — 要相符的元素名稱。
|
XMLList — 相符後代的 XMLList 物件。 如果沒有後代,便會傳回空的 XMLList 物件。
|
相關 API 元素
範例 ( 如何使用本範例 )
descendants()
方法,而不要使用 descendant (..) 運算子,如下列範例所示:
var xml:XML = <enrollees> <student id="239"> <class name="Algebra" /> <class name="Spanish 2"/> </student> <student id="206"> <class name="Trigonometry" /> <class name="Spanish 2" /> </student> </enrollees> trace(xml.descendants("class"));
descendants()
方法如何傳回包含「所有」後代物件的 XMLList 物件,包括子系、孫系等等:
XML.ignoreComments = false; var xml:XML = <body> <!-- comment --> text1 <a> <b>text2</b> </a> </body>; trace(xml.descendants("*").length()); // 5 trace(xml.descendants("*")[0]); // // <!-- comment --> trace(xml.descendants("*")[1].toXMLString()); // text1 trace(xml.descendants("a").toXMLString()); // <a><b>text2</b></a> trace(xml.descendants("b").toXMLString()); // <b>text2</b>
elements | () | 方法 |
AS3 function elements(name:Object = *):XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
列出 XML 物件的元素。元素是由開始與結束標籤所組成,例如 <first></first>
。 name
是選擇性的參數。 name
參數可以是 QName 物件、String 資料類型,或是會在之後轉換成 String 資料類型的其他任何資料類型。 使用 name
參數可列出特定的元素。 例如,在此範例中,元素 "first
" 會傳回 "John
":<first>John</first>
。
若要列出所有元素,請使用星號 (*) 做為參數。 星號也是預設的參數。
搭配星號參數使用 length()
方法可輸出元素的總數。 例如,numElement = addressbook.elements("*").length()
。
參數
name:Object (default = * ) — 元素的名稱。 元素的名稱是由角括號所環繞。 例如,在此範例中,"first " 就是 name :<first></first> 。
|
XMLList — 元素內容的 XMLList 物件。 元素內容位於開始與結束標籤之間。 如果您使用星號 (*) 呼叫所有元素,便會傳回元素的標籤及內容。
|
相關 API 元素
範例 ( 如何使用本範例 )
elements()
方法只會傳回元素的清單,而非註解、文字屬性或處理指示的清單:
var xml:XML = <foo> <!-- comment --> <?instruction ?> text <a>1</a> <b>2</b> </foo>; trace(xml.elements("*").length()); // 2 trace(xml.elements("*")[0].toXMLString()); // <a>1</a> trace(xml.elements("b").length()); // 1 trace(xml.elements("b")[0].toXMLString()); // <b>2</b>
elements()
方法,而不要使用 XML 點 (.) 運算子,如下列範例所示:
var xml:XML = <student id="206"> <class name="Trigonometry" /> <class name="Spanish 2" /> </student> trace(xml.elements("class"));
hasComplexContent | () | 方法 |
AS3 function hasComplexContent():Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
檢查 XML 物件是否包含複雜內容。 如果 XML 物件具有子系元素,就表示它包含複雜內容。 代表特質、註解、處理指示及文字節點的 XML 物件則沒有複雜內容。 不過,「包含」這些項目的物件,依然可能會視為包含複雜內容 (如果該物件具有子元素)。
傳回值Boolean — 如果 XML 物件包含複雜內容,則為 true ,否則為 false 。
|
相關 API 元素
範例 ( 如何使用本範例 )
a
(具有簡單內容) 及另一個屬性 a
(具有複雜內容) 的 XML 物件:
var xml:XML = <foo> <a> text </a> <a> <b/> </a> </foo>; trace(xml.a[0].hasComplexContent()); // false trace(xml.a[1].hasComplexContent()); // true trace(xml.a[0].hasSimpleContent()); // true trace(xml.a[1].hasSimpleContent()); // false
hasOwnProperty | () | 方法 |
AS3 function hasOwnProperty(p:String):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
檢查物件是否具有 p
參數所指定的屬性。
參數
p:String — 要相符的屬性。
|
Boolean — 如果此屬性存在,則為 true ,否則為 false 。
|
範例 ( 如何使用本範例 )
hasOwnProperty()
方法,以確定 (b
) 屬性在評估使用此屬性的運算式 (b == "11"
) 之前確實存在:
var xml:XML = <foo> <a /> <a> <b>10</b> </a> <a> <b>11</b> </a> </foo>; trace(xml.a.(hasOwnProperty("b") && b == "11"));
a
的第一個元素沒有名為 b
的屬性:
trace(xml.a.(b == "11"));
hasOwnProperty()
方法,以確定 (item
) 屬性在評估使用此屬性的運算式 (item.contains("toothbrush")
) 之前確實存在:
var xml:XML = <orders> <order id='1'> <item>toothbrush</item> <item>toothpaste</item> </order> <order> <returnItem>shoe polish</returnItem> </order> </orders>; trace(xml.order.(hasOwnProperty("item") && item.contains("toothbrush")));
hasSimpleContent | () | 方法 |
AS3 function hasSimpleContent():Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
檢查 XML 物件是否包含簡單內容。 如果 XML 物件代表文字節點、特質節點或沒有子系元素的 XML 元素,就表示它包含簡單內容。 代表註解和處理指示的 XML 物件,則「不」包含簡單內容。
傳回值Boolean — 如果 XML 物件包含簡單內容,則為 true ,否則為 false 。
|
相關 API 元素
範例 ( 如何使用本範例 )
a
(具有簡單內容) 及另一個屬性 a
(具有複雜內容) 的 XML 物件:
var xml:XML = <foo> <a> text </a> <a> <b/> </a> </foo>; trace(xml.a[0].hasComplexContent()); // false trace(xml.a[1].hasComplexContent()); // true trace(xml.a[0].hasSimpleContent()); // true trace(xml.a[1].hasSimpleContent()); // false
inScopeNamespaces | () | 方法 |
insertChildAfter | () | 方法 |
AS3 function insertChildAfter(child1:Object, child2:Object):*
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
在此 XML 物件中,將指定的 child2
參數插入在 child1
參數之後,並傳回產生的物件。 如果 child1
參數為 null
,此方法便會在 XML 物件的所有子系「前面」 (也就是在 none 之後) 插入 child2
的內容。 如果有提供 child1
,不過該項不存在於 XML 物件中,就不會修改此 XML 物件,並會傳回 undefined
。
如果您在非元素 (文字、特質、註解、pi 等等) 的 XML 子系上呼叫此方法,便會傳回 undefined
。
使用 delete
(XML) 運算子可移除 XML 節點。
參數
child1:Object — 在來源物件中插入 child2 之前的物件。
| |
child2:Object — 要插入的物件。
|
* — 產生的 XML 物件或是 undefined 。
|
相關 API 元素
範例 ( 如何使用本範例 )
var xml:XML = <menu> <item>burger</item> <item>soda</item> </menu>; xml.insertChildAfter(xml.item[0], <saleItem>fries</saleItem>); trace(xml);
trace()
輸出如以下所示:
<menu>
<item>burger</item>
<saleItem>fries</saleItem>
<item>soda</item>
</menu>
insertChildBefore | () | 方法 |
AS3 function insertChildBefore(child1:Object, child2:Object):*
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
在此 XML 物件中,將指定的 child2
參數插入在 child1
參數之前,並傳回產生的物件。 如果 child1
參數為 null
,此方法便會在 XML 物件的所有子系「後面」 (也就是在 none 之前) 插入 child2
的內容。 如果有提供 child1
,不過該項不存在於 XML 物件中,就不會修改此 XML 物件,並會傳回 undefined
。
如果您在非元素 (文字、特質、註解、pi 等等) 的 XML 子系上呼叫此方法,便會傳回 undefined
。
使用 delete
(XML) 運算子可移除 XML 節點。
參數
child1:Object — 在來源物件中插入 child2 之後的物件。
| |
child2:Object — 要插入的物件。
|
* — 產生的 XML 物件或是 undefined 。
|
相關 API 元素
範例 ( 如何使用本範例 )
var xml:XML = <menu> <item>burger</item> <item>soda</item> </menu>; xml.insertChildBefore(xml.item[0], <saleItem>fries</saleItem>); trace(xml);
trace()
輸出如以下所示:
<menu> <saleItem>fries</saleItem> <item>burger</item> <item>soda</item> </menu>
length | () | 方法 |
localName | () | 方法 |
AS3 function localName():Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
提供 XML 物件之限定名稱的地區名稱部分。
傳回值Object — 為 String 或 null 形式的區域名稱。
|
範例 ( 如何使用本範例 )
localName()
方法:
var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; trace(xml.localName()); // Envelope
name | () | 方法 |
AS3 function name():Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
提供 XML 物件的限定名稱。
傳回值Object — 限定名稱可以是 QName 或 null 。
|
相關 API 元素
範例 ( 如何使用本範例 )
name()
方法來取得 XML 物件的限定名稱:
var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; trace(xml.name().localName); // Envelope trace(xml.name().uri); // "http://www.w3.org/2001/12/soap-envelope"
name()
方法:
var xml:XML = <foo x="15" y="22"> text </foo>; trace(xml.name().localName); // foo trace(xml.name().uri == ""); // true trace(xml.children()[0]); // text trace(xml.children()[0].name()); // null trace(xml.attributes()[0]); // 15 trace(xml.attributes()[0].name()); // x
namespace | () | 方法 |
AS3 function namespace(prefix:String = null):*
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
如果沒有提供任何參數,便會提供與此 XML 物件之限定名稱有關聯的命名空間。 如果有指定 prefix
參數,此方法便會傳回符合 prefix
參數並在 XML 物件範圍中的命名空間。 如果沒有這類命名空間,此方法便會傳回 undefined
。
參數
prefix:String (default = null ) — 要相符的前置詞。
|
* — 會傳回 null 、undefined 或是命名空間。
|
範例 ( 如何使用本範例 )
namespace()
方法取得 XML 物件的命名空間,並將它指定給名為 soap
的 Namespace 物件,然後會使用此物件來識別 xml
物件的屬性 (xml.soap::Body[0]
):
var xml:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:wx = "http://example.com/weather"> <wx:forecast> <wx:city>Quito</wx:city> </wx:forecast> </soap:Body> </soap:Envelope>; var soap:Namespace = xml.namespace(); trace(soap.prefix); // soap trace(soap.uri); // http://www.w3.org/2001/12/soap-envelope var body:XML = xml.soap::Body[0]; trace(body.namespace().prefix); // soap trace(xml.namespace().uri); // http://www.w3.org/2001/12/soap-envelope trace(body.namespace("wx").uri); // "http://example.com/weather"
namespace()
方法取得節點的預設命名空間以及特定前置詞 ("dc"
) 的命名空間:
var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; trace(xml.namespace()); // http://www.w3.org/1999/02/22-rdf-syntax-ns# trace(xml.namespace("dc")); // http://purl.org/dc/elements/1.1/ trace(xml.namespace("foo")); // undefined
namespaceDeclarations | () | 方法 |
AS3 function namespaceDeclarations():Array
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
列出在 XML 物件的父輩內容中與該 XML 物件有關聯的命名空間宣告。
傳回值Array — Namespace 物件的陣列。
|
相關 API 元素
範例 ( 如何使用本範例 )
var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; for (var i:uint = 0; i < xml.namespaceDeclarations().length; i++) { var ns:Namespace = xml.namespaceDeclarations()[i]; var prefix:String = ns.prefix; if (prefix == "") { prefix = "(default)"; } trace(prefix + ":" , ns.uri); }
trace()
輸出如以下所示:
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
dc: http://purl.org/dc/elements/1.1/
(default): http://purl.org/rss/1.0/
nodeKind | () | 方法 |
AS3 function nodeKind():String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
指定節點的類型:文字、註解、處理指示、特質或元素。
傳回值String — 使用的節點類型。
|
相關 API 元素
範例 ( 如何使用本範例 )
XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var xml:XML = <example id="10"> <!-- this is a comment --> <?test this is a pi ?> and some text </example>; trace(xml.nodeKind()); // element trace(xml.children()[0].nodeKind()); // comment trace(xml.children()[1].nodeKind()); // processing-instruction trace(xml.children()[2].nodeKind()); // text trace(xml.@id[0].nodeKind()); // attribute
normalize | () | 方法 |
AS3 function normalize():XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
針對 XML 物件及所有後代 XML 物件,合併鄰接的文字節點並刪除空的文字節點。
傳回值XML — 產生的一般化 XML 物件。
|
範例 ( 如何使用本範例 )
normalize()
方法的效果:
var xml:XML = <body></body>; xml.appendChild("hello"); xml.appendChild(" world"); trace(xml.children().length()); // 2 xml.normalize(); trace(xml.children().length()); // 1
parent | () | 方法 |
AS3 function parent():*
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回 XML 物件的父輩。 如果 XML 物件沒有父輩,此方法便會傳回 undefined
。
* — 可為父節點的 XML 參考,或在 XML 物件沒有父項目時則為 undefined 。
|
範例 ( 如何使用本範例 )
parent()
方法來識別 XML 結構中特定元素的父元素:
var xml:XML = <body> <p id="p1">Hello</p> <p id="p2">Test: <ul> <li>1</li> <li>2</li> </ul> </p> </body>; var node:XML = xml.p.ul.(li.contains("1"))[0]; // == <ul> ... </ul> trace(node.parent().@id); // p2
prependChild | () | 方法 |
AS3 function prependChild(value:Object):XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
將提供之 child
物件的副本,插入 XML 元素中任何現有的 XML 屬性之前。
使用 delete
(XML) 運算子可移除 XML 節點。
參數
value:Object — 要插入的物件。
|
XML — 產生的 XML 物件。
|
相關 API 元素
範例 ( 如何使用本範例 )
prependChild()
方法,將元素加入到 XML 物件的子清單開頭:
var xml:XML = <body> <p>hello</p> </body>; xml.prependChild(<p>world</p>); trace(xml.p[0].toXMLString()); // <p>world</p> trace(xml.p[1].toXMLString()); // <p>hello</p>
processingInstructions | () | 方法 |
AS3 function processingInstructions(name:String = "*"):XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
如果有提供 name
參數,便會列出所有包含具有 name
的處理指示之 XML 物件的子系。 如果沒有任何參數,此方法便會列出 XML 物件的所有子系 (其中包含任何處理指示)。
參數
name:String (default = "* ") — 要符合的處理指示名稱。
|
XMLList — 相符子系物件的清單。
|
範例 ( 如何使用本範例 )
processingInstructions()
方法,針對 XML 物件取得處理指示的陣列:
XML.ignoreProcessingInstructions = false; var xml:XML = <body> foo <?xml-stylesheet href="headlines.css" type="text/css" ?> <?instructionX ?> </body>; trace(xml.processingInstructions().length()); // 2 trace(xml.processingInstructions()[0].name()); // xml-stylesheet
propertyIsEnumerable | () | 方法 |
AS3 function propertyIsEnumerable(p:String):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
檢查屬性 p
是否位於屬性組 (可在套用至 XMLList 物件之 for..in
陳述式中重複) 中。 唯有 toString(p) == "0"
,才會傳回 true
。
參數
p:String — 您要檢查的屬性。
|
Boolean — 如果此屬性可以在 for..in 陳述式中重複,則為 true ,否則為 false 。
|
範例 ( 如何使用本範例 )
propertyNameIsEnumerable()
方法只會針對 0
的索引值傳回 true
的值;而如果是 XMLList 物件,此 XMLList 物件的每一個有效索引值都會是 true
的傳回值:
var xml:XML = <body> <p>Hello</p> <p>World</p> </body>; trace(xml.propertyIsEnumerable(0)); // true trace(xml.propertyIsEnumerable(1)); // false for (var propertyName:String in xml) { trace(xml[propertyName]); } var list:XMLList = xml.p; trace(list.propertyIsEnumerable(0)); // true trace(list.propertyIsEnumerable(1)); // true trace(list.propertyIsEnumerable(2)); // false for (var propertyName:String in list) { trace(list[propertyName]); }
removeNamespace | () | 方法 |
AS3 function removeNamespace(ns:Namespace):XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會移除此物件及所有後代的指定命名空間。 如果命名空間會被物件的限定名稱或物件特質的限定名稱所參照,removeNamespaces()
方法就不會移除該命名空間。
參數
ns:Namespace — 要移除的命名空間。
|
XML — 產生的 XML 物件副本。
|
範例 ( 如何使用本範例 )
var xml:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <!-- ... --> </rdf:RDF>; trace(xml.namespaceDeclarations().length); // 3 trace(xml.namespaceDeclarations()[0] is String); // var dc:Namespace = xml.namespace("dc"); xml.removeNamespace(dc); trace(xml.namespaceDeclarations().length); // 2
replace | () | 方法 |
AS3 function replace(propertyName:Object, value:XML):XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
使用指定的 value
參數取代 propertyName
參數所指定的屬性。 如果沒有屬性符合 propertyName
,就不會修改 XML 物件。
參數
propertyName:Object — 可以是數值、一組 XML 元素的非限定名稱、一組 XML 元素的限定名稱,或是星號萬用字元 ("*")。 請使用非限定名稱來識別預設命名空間中的 XML 元素。
| |
value:XML — 取代值。 這可以是 XML 物件、XMLList 物件,或是可用 toString() 轉換的任何值。
|
XML — 產生的 XML 物件,而且相符的屬性已被取代。
|
範例 ( 如何使用本範例 )
replace()
方法 (將某個整數當做第一個參數):
var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace(1, <p>Bob</p>); trace(xml);
trace()
輸出:
<body>
<p>Hello</p>
<p>Bob</p>
<hr/>
</body>
replace()
方法 (將某個字串當做第一個參數):
var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace("p", <p>Hi</p>); trace(xml);
trace()
輸出:
<body>
<p>Hi</p>
<hr/>
</body>;
replace()
方法 (將 Qname 當做第一個參數):
var xml:XML = <ns:body xmlns:ns = "myNS"> <ns:p>Hello</ns:p> <ns:p>World</ns:p> <hr/> </ns:body>; var qname:QName = new QName("myNS", "p"); xml.replace(qname, <p>Bob</p>); trace(xml);
trace()
輸出:
<ns:body xmlns:ns = "myNS">
<p>Bob</p>
<hr/>
</ns:body>
replace()
方法 (將 "*"
字串當做第一個參數):
var xml:XML = <body> <p>Hello</p> <p>World</p> <hr/> </body>; xml.replace("*", <img src = "hello.jpg"/>); trace(xml);
trace()
輸出:
<body>
<img src="hello.jpg"/>
</body>
setChildren | () | 方法 |
AS3 function setChildren(value:Object):XML
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
使用指定的 XML 屬性組 (由 value
參數提供) 取代 XML 物件的子系屬性。
參數
value:Object — 取代的 XML 屬性。 可以是單一的 XML 物件或 XMLList 物件。
|
XML — 產生的 XML 物件。
|
範例 ( 如何使用本範例 )
setChildren()
方法,首先是使用 XML 物件當做參數,然後使用 XMLList 物件當做參數:
var xml:XML = <body> <p>Hello</p> <p>World</p> </body>; var list:XMLList = xml.p; xml.setChildren(<p>hello</p>); trace(xml); // <body> // <p>hello</p> // </body> xml.setChildren(list); trace(xml); // <body> // <p>Hello</p> // <p>World</p> // </body>
setLocalName | () | 方法 |
AS3 function setLocalName(name:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
將 XML 物件的區域名稱變更為指定的 name
參數。
參數
name:String — 區域名稱的取代名稱。
|
範例 ( 如何使用本範例 )
setLocalName()
方法來變更 XML 元素的區域名稱:
var xml:XML = <ns:item xmlns:ns="http://example.com"> toothbrush </ns:item>; xml.setLocalName("orderItem"); trace(xml.toXMLString()); // <ns:orderItem xmlns:ns="http://example.com">toothbrush</ns:orderItem>
setName | () | 方法 |
AS3 function setName(name:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
將 XML 物件的名稱設定為指定的限定名稱或特質名稱。
參數
name:String — 物件的新名稱。
|
範例 ( 如何使用本範例 )
setName()
方法來變更 XML 元素的名稱:
var xml:XML = <item> toothbrush </item>; xml.setName("orderItem"); trace(xml.toXMLString()); // <orderItem>toothbrush</orderItem>
setNamespace | () | 方法 |
AS3 function setNamespace(ns:Namespace):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會設定與 XML 物件有關聯的命名空間。
參數
ns:Namespace — 新的命名空間。
|
範例 ( 如何使用本範例 )
soap
命名空間,並將它套用至另一個 XML 物件 (xml2
) 的命名空間:
var xml1:XML = <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <!-- ... --> </soap:Envelope>; var ns:Namespace = xml1.namespace("soap"); var xml2:XML = <Envelope> <Body/> </Envelope>; xml2.setNamespace(ns); trace(xml2);
setSettings | () | 方法 |
AS3 static function setSettings(... rest):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
設定下列 XML 屬性的值:ignoreComments
、ignoreProcessingInstructions
、ignoreWhitespace
、prettyIndent
和 prettyPrinting
。 下列是預設設定,會在沒有提供 setObj
參數時套用:
XML.ignoreComments = true
XML.ignoreProcessingInstructions = true
XML.ignoreWhitespace = true
XML.prettyIndent = 2
XML.prettyPrinting = true
注意:請不要將這個方法套用到 XML 類別的實體,而是將其套用到 XML
,如下列程式碼所示:XML.setSettings()
。
參數
... rest — 具有下列每個屬性的物件:
|
相關 API 元素
ignoreProcessingInstructions
ignoreWhitespace
prettyIndent
prettyPrinting
defaultSettings()
settings()
範例 ( 如何使用本範例 )
XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
settings | () | 方法 |
AS3 static function settings():Object
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
擷取下列屬性:ignoreComments
、ignoreProcessingInstructions
、ignoreWhitespace
、prettyIndent
和 prettyPrinting
。
Object — 具有下列 XML 屬性的物件:
|
相關 API 元素
XML.ignoreProcessingInstructions
XML.ignoreWhitespace
XML.prettyIndent
XML.prettyPrinting
XML.defaultSettings()
XML.setSettings()
範例 ( 如何使用本範例 )
XML.ignoreComments = false; XML.ignoreProcessingInstructions = false; var customSettings:Object = XML.settings(); var xml1:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml1.toXMLString()); // <foo> // <!-- comment --> // <?instruction ?> // </foo> XML.setSettings(XML.defaultSettings()); var xml2:XML = <foo> <!-- comment --> <?instruction ?> </foo>; trace(xml2.toXMLString());
text | () | 方法 |
AS3 function text():XMLList
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回代表 XML 文字節點的 XML 物件之所有 XML 屬性的 XMLList 物件。
傳回值XMLList — 屬性的清單。
|
範例 ( 如何使用本範例 )
text()
方法來取得 XML 物件的文字節點:
var xml:XML = <body> text1 <hr/> text2 </body>; trace(xml.text()[0]); // text1 trace(xml.text()[1]); // text2
toJSON | () | 方法 |
AS3 function toJSON(k:String):*
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11, AIR 3, Flash Lite 4 |
提供可覆寫的方法,用於自訂 XML 物件中值的 JSON 編碼。
JSON.stringify()
方法會在周遊的每個物件上尋找 toJSON()
方法。如果找到 toJSON()
方法,JSON.stringify()
就會在每次遇到值時呼叫方法,以便傳入與值配對的索引鍵。
XML 提供的 toJSON()
預設實作只會傳回類別的名稱。想要將 XML 物件匯出至 JSON 的用戶端必須提供自己的實作。提供的方式是,重新定義類別原型上的 toJSON()
方法。
toJSON()
方法可以傳回任何類型的值。如果傳回物件,stringify()
就會遞迴至該物件。如果 toJSON()
傳回字串,stringify()
不會遞迴,而是繼續它的周遊。
參數
k:String — JSON.stringify() 在這個物件周遊中所遇到索引鍵值配對的索引鍵
|
* — 類別名稱字串。
|
相關 API 元素
Object.prototype
toString | () | 方法 |
AS3 function toString():String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回 XML 物件的字串形式。這項轉換的規則,取決於 XML 物件具有簡單內容還是複雜內容而定:
- 如果 XML 物件具有簡單內容,
toString()
便會傳回 XML 物件的字串內容,並去除下列各項:開始標籤、特質、命名空間宣告及結束標籤。
- 如果 XML 物件具有複雜內容,
toString()
會傳回代表整個 XML 物件的 XML 編碼字串,其中包含開始標籤、特質、命名空間宣告及結束標籤。
若要每次都傳回整個 XML 物件,請使用 toXMLString()
。
String — XML 物件的字串形式。
|
相關 API 元素
範例 ( 如何使用本範例 )
toString()
方法所傳回的內容:
var test:XML = <type name="Joe">example</type>; trace(test.toString()); //example
toString()
方法所傳回的內容:
var test:XML = <type name="Joe"> <base name="Bob"></base> example </type>; trace(test.toString()); // <type name="Joe"> // <base name="Bob"/> // example // </type>
toXMLString | () | 方法 |
AS3 function toXMLString():String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回 XML 物件的字串形式。無論 XML 物件具有簡單內容還是複雜內容,toXMLString()
方法永遠都會傳回 XML 物件的開始標籤、特質及結束標籤,與 toString()
方法不同。 (toString()
方法會針對包含簡單內容的 XML 物件去除這些項目)。
String — XML 物件的字串形式。
|
相關 API 元素
範例 ( 如何使用本範例 )
toString()
方法 (預設會套用到 trace()
方法的所有參數) 與使用 toXMLString()
方法之間的差異:
var xml:XML = <p>hello</p>; trace(xml); // hello trace(xml.toXMLString()); // <p>hello</p>
valueOf | () | 方法 |
@
) 符號會在數個 trace()
呼叫中使用,以根據特質名稱尋找資訊。
package { import flash.display.Sprite; public class XmlExample extends Sprite { public function XmlExample() { var employees:XML = <employees> <employee ssn="123-123-1234"> <name first="John" last="Doe"/> <address> <street>11 Main St.</street> <city>San Francisco</city> <state>CA</state> <zip>98765</zip> </address> </employee> <employee ssn="789-789-7890"> <name first="Mary" last="Roe"/> <address> <street>99 Broad St.</street> <city>Newton</city> <state>MA</state> <zip>01234</zip> </address> </employee> </employees>; trace(employees.employee[0].address.zip); // 98765 trace(employees.employee[1].@ssn); // 789-789-7890 trace(employees.employee.name); // <name first="John" last="Doe"/> // <name first="Mary" last="Roe"/> trace(employees..zip[0]); // 98765 trace(employees..@ssn[1]); // 789-789-7890 trace(employees..name); // <name first="John" last="Doe"/> // <name first="Mary" last="Roe"/> trace(employees.employee[0].address.*); // <street>11 Main St.</street> // <city>San Francisco</city> // <state>CA</state> // <zip>98765</zip> var node:String = "zip"; trace(employees.employee[0].address[node]); // 98765 var attribute:String = "ssn"; trace(employees.employee[1].@[attribute]); // 789-789-7890 for each (var num:XML in employees..@ssn) { trace(num); // 123-123-1234 } // 789-789-7890 var ssnToFind:String = "789-789-7890"; trace(employees.employee.(@ssn == ssnToFind).toXMLString()); // <employee ssn="789-789-7890"> // <name first="Mary" last="Roe"/> // <address> // <street>99 Broad St.</street> // <city>Newton</city> // <state>MA</state> // <zip>01234</zip> // </address> // </employee> } } }
Tue Jun 12 2018, 03:47 PM Z