Flex3處理資料 訪問 XML 資料1

指令碼無敵發表於2009-06-11

Actionscript 3.0組類基於ECMAScript for XML(E4X)說明(ECMA-357 2第二版)。這些類功能強大,使用簡單,對處理XMLdata資料非常有用。相比以前的程式設計技術使用E4X的開發程式碼使得XML資料更快。

  • 介紹XML
  • 對XML元素與屬性賦值
  • 通過傳遞資料引用建立XML物件
  • 裝配與改變XML物件
  • 查詢XML資料


介紹XML
許多伺服器端應用程式使用XML資料結構,那麼你可以在ActionScript中使用XML類來建立優雅的富網際網路應用程式。例如那些連結到Web service的應用。web service是連線應用程式的重要的方法,例如,一個Adobe Flash Player9 應用程式和一個在web伺服器上的應用程式通過公共標準,例如Simple Object Access Protocol(SOAP)

在Adobe Flex中,ECMAScript for XML說明書定義了一系列的類和功能來處理XML資料。這些類和函式的集合被稱為E4X.兩個主要的類是XML和XMLList。

注意: 在ActionScript 2.0中有一個XML類。在ActionScript 3.0中,它被重新命名為XMLDocument這樣就不會與新的,作為E4X一部分的XML類發生衝突了。在ActionScript 3.0中,上一個版本遺留的類——XMLDocument,XMLNode,XMLParser和XMLTag——都被包含在flash.xml包中,主 要是為了向下相容。E4X類是核心類;你需要匯入包才能使用他們。本快速說明沒有設計對傳統的ActionScript 2.0的類逐一細說。想了解他們,檢視flash.xml包,在Flex 3 Language Reference中

在下邊的例子中,你建立了一個XML文件,命名為myBooks。建立一個XML文件在ActionScript,通過在Actionscript塊中書寫XML並賦值給一個變數。由於在Flex中,XML是本地資料型別,就像Number或Boolean一樣。

myBooks的XML文件包含兩個book元素(element)(也被稱為node(節點))。第一個book元素擁有4個子元素,名稱值title,author,amazonUrl和pageCount。

要通過XML例項訪問元素,使用點標示(.)就像存取一個物件的屬性一樣。那麼,舉個例子,要獲得book節點的引用,你要寫成 myBooks.book。這就返回了一個XMLList時間,他包含了myBooks的XML中的2個book節點。要存取列表中指定節點,你需要使用 陣列表示法。例如,要獲得第一本數節點的引用,可以寫為myBooks.book[0]。如果你使用過ActionScript中的物件和陣列,你應該對 點操作符和陣列語法風格比較熟悉。然而,E4X比這更進一步,可以按指定屬性名在XML中搜尋節點。

下邊的例子中,使用搜尋ISBN屬性獲得第一本書的引用。屬性在 E4X中at-sign(@)為字首描述屬性,寫為@ISBN。語句myBooks.book.(@ISBN==”159059181”)翻譯為“找到一 個屬性ISBN值等於159059181的book節點”。另一個例子描述更高階的查詢技術。

 

相關文章