套件 | 最上層 |
類別 | public final class QName |
繼承 | QName Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
null
時,QName 物件便會符合任何命名空間。 請使用 QName 建構函式建立新的 QName 物件,這會是另一個 QName 物件的副本,或是具有某個 Namespace 物件之 uri
及 QName 物件之 localName
的新 QName 物件。
E4X 特有的方法可以交替使用 QName 物件與字串。 E4X 方法存在於 QName、Namespace、XML 及 XMLList 類別中。 這些接受字串的 E4X 方法,也都可以接受 QName 物件。 這種交替性就是命名空間支援與類似 XML.child()
的方法一起運作的方式。
QName 類別 (以及 XML、XMLList 和 Namespace 類別) 會實作 ECMAScript for XML (E4X) 規格 (ECMA-357 第 2 版) 中定義的強大 XML 處理標準。
限定識別項會評估為 QName 物件。 如果指定 XML 元素的 QName 物件而不識別命名空間,則關聯之 QName 物件的 uri
屬性便會設定為全域預設命名空間。 如果指定 XML 特質的 QName 物件而不識別命名空間,uri
屬性便會設定為空字串。
詳細資訊
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
localName : String [唯讀]
QName 物件的區域名稱。 | QName | ||
uri : String [唯讀]
QName 物件的統一資源識別項 (URI)。 | QName |
方法 | 定義自 | ||
---|---|---|---|
會建立 QName 物件,此物件是另一個 QName 物件的副本。 | QName | ||
使用 Namespace 物件中的 URI 以及 QName 物件中的 localName 來建立 QName 物件。 | QName | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回一個字串,此字串是由 URI 及 QName 物件的區域名稱所組成 (兩者以 "::" 分隔)。 | QName | ||
會傳回 QName 物件。 | QName |
localName | 屬性 |
uri | 屬性 |
QName | () | 建構函式 |
public function QName(qname:QName)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會建立 QName 物件,此物件是另一個 QName 物件的副本。 如果傳遞給建構函式的參數是 QName 物件,便會建立該 QName 物件的副本。 如果參數不是 QName 物件,則會將此參數轉換為字串,並將其指定給新 QName 實體的 localName
屬性。 如果參數為 undefined
或是未指定,便會建立新的 QName 物件,其 localName
屬性會設定為空字串。
注意:此類別會顯示兩個建構函式項目,因為每一種形式都可以接受不同的參數。 如每個項目中所詳述,此建構函式會根據傳遞之參數的類型與數目而有不同的行為。 ActionScript 3.0 並不支援方法或建構函式多載。
參數qname:QName — 將要複製的 QName 物件。 其他任何類型的物件都會轉換為字串,該字串則會指定到新 QName 物件的 localName 屬性。
|
QName | () | 建構函式 |
public function QName(uri:Namespace, localName:QName)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
使用 Namespace 物件中的 URI 以及 QName 物件中的 localName
來建立 QName 物件。如果其中任一個參數不是預期的資料類型,此參數便會轉換為字串並指派給新 QName 物件的對應屬性。 例如,如果兩個參數都是字串,便會傳回新的 QName 物件,其 uri
屬性會設定為第一個參數,而 localName
屬性則會設定為第二個參數。 換句話說,下列及其他許多的排列方式,都是建構函式的有效形式:
QName (uri:Namespace, localName:String); QName (uri:String, localName: QName); QName (uri:String, localName: String);
如果您為 uri
參數傳遞 null
,新 QName 物件的 uri
屬性便會設定為 null
。
注意:此類別會顯示兩個建構函式項目,因為每一種形式都可以接受不同的參數。 如每個項目中所詳述,此建構函式會根據傳遞之參數的類型與數目而有不同的行為。 ActionScript 3.0 並不支援方法或建構函式多載。
參數uri:Namespace — 要從其中複製 uri 值的 Namespace 物件。 其他任何類型的參數都會轉換為字串。
| |
localName:QName — 要從其中複製 localName 值的 QName 物件。 其他任何類型的參數都會轉換為字串。
|
toString | () | 方法 |
AS3 function toString():String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
會傳回一個字串,此字串是由 URI 及 QName 物件的區域名稱所組成 (兩者以 "::" 分隔)。
此格式取決於 QName 物件的 uri
屬性:
If傳回值uri
== ""toString
returnslocalName
else ifuri
== nulltoString
returns *::localName
elsetoString
returnsuri
::localName
String — 字串形式的限定名稱。
|
valueOf | () | 方法 |
- 建立 Namespace 實體,然後使用該實體做為對 QName 建構函式的輸入內容。 如果之後要將
Namespace.prefix
屬性用於其他用途,這會是最佳作法。 - 建立 QName 實體,其方式是針對 Qname 建構函式中的
uri
參數使用簡單的字串值。
此程式碼會執行下列各項:
- 會定義名為
rssXML
的 XML 變數。 - 以前置詞
dc
建立新的 Namespace 物件。 - 使用 Namespace 物件及區域名稱
creator
建立新的 QName 物件。 - 會呼叫使用
XML.descendants()
方法的showDescendants()
方法,以取得 XMLList 實體,其中包含限定名稱符合指定 QName 實體的所有後代元素。 - 使用
for each
迴圈顯示清單中每個元素的限定名稱與文字值。 - 使用
uri
參數及區域名稱date
的字串值,建立另一個 QName 物件。 - 再次呼叫
showDescendants()
方法,以顯示後代元素的名稱與文字值。
package { import flash.display.Sprite; public class QNameExample extends Sprite { public function QNameExample() { var rssXML:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel rdf:about="http://www.xml.com/cs/xml/query/q/19"> <title>Test RSS</title> <link>http://www.adobe.com/</link> <description>This is a test RSS document.</description> <language>en-us</language> <items> <rdf:Seq> <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/> <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/> </rdf:Seq> </items> </channel> <item rdf:about="http://www.adobe.com/devnet/flash/"> <title>Flash Developer Center</title> <link>http://www.adobe.com/devnet/flash/</link> <description>Welcome to the Flash Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-08-08</dc:date> </item> <item rdf:about="http://www.adobe.com/devnet/flex/"> <title>Flex Developer Center</title> <link>http://www.adobe.com/devnet/flex/</link> <description>Welcome to the Flex Developer Center</description> <dc:creator>Adobe</dc:creator> <dc:date>2005-10-16</dc:date> </item> </rdf:RDF>; var dcNamespace:Namespace = new Namespace("dc", "http://purl.org/dc/elements/1.1/"); var creatorQName:QName = new QName(dcNamespace, "creator"); trace(creatorQName.uri); // http://purl.org/dc/elements/1.1/ trace(creatorQName.localName); // creator showDescendants(rssXML, creatorQName); var dateQName:QName = new QName("http://purl.org/dc/elements/1.1/", "date"); trace(dateQName.uri); // http://purl.org/dc/elements/1.1/ trace(dateQName.localName); // date showDescendants(rssXML, dateQName); } public function showDescendants(xmlData:XML, qualifiedName:QName):void { var decendantList:XMLList = xmlData.descendants(qualifiedName); for each (var element:XML in decendantList) { trace(element.name()); // the fully qualified name, // like "http://purl.org/dc/elements/1.1/::creator" trace(element); // the simple text value of each element, like "Adobe" } } } }
Tue Jun 12 2018, 03:47 PM Z