跳至內容

E4X

維基百科,自由的百科全書

ECMAScript for XMLE4X)是一擴展了ECMAScript(包含ActionScriptDMDScriptJavaScriptJScript等)的程式語言,它增加對 XML 的內在支持。它的目標是在訪問XML文檔時,提供一種更直觀、語法更簡潔的的 DOM 接口。它也是處理XML時的一種新的方式。在 E4X 版本之前,通常總是在 Objcet(對象)層次上訪問XML,而 E4X 則是把 XML 當做原始數據(primitive)來處理(比如字符、數字和布爾值)。這也意味着更快的訪問速度、更好的支持、和使 XML 可以成為程序的一個組塊(數據結構)。

示例

 var sales = <sales vendor="John">
     <item type="peas" price="4" quantity="6"/>
     <item type="carrot" price="3" quantity="10"/>
     <item type="chips" price="5" quantity="3"/>
   </sales>;

 alert( sales.item.(@type == "carrot").@quantity );
 alert( sales.@vendor );
 for each( var price in sales..@price ) {
   alert( price );
 }

實現

E4X 的第一個實現是由 Terry Lucas 和 John Schneider 設計的,出現在 BEA 於2002年2月發佈的 Weblogic Workshop 7.0中。BEA 的實現是基於 Rhino, 並且於2004年6月先於 ECMAScript E4X 規範發佈。John Schneider 當時寫了一篇關於 BEA 的 Workshop 的文章頁面存檔備份,存於互聯網檔案館)。這個 E4X 語言前身的參考文檔目前仍然可用

  • E4X 在(至少部分地)SpiderMonkeyGecko的JavaScript引擎)和 Rhino(Mozilla 的另一個用 Java 而非 C 寫的 JavaScript 引擎)中實現。

注意:為了正確地在Firefox 1.5中運行E4X,你必須在腳本的HTML標籤中將類型(type)值後面加入「;e4x=1」字串(例:<script type="text/javascript; e4x=1">)。

  • 由於 Mozilla Firefox 是基於 Gecko 引擎的,所以它可以用 E4X 運行腳本。該規範相當新,只有1.5及以後版本支持。
  • E4X 在 Aptana 的 Jaxer Ajax 應用伺服器中可用,該伺服器使用了 Mozilla 的伺服器端引擎。
  • 從 Alfresco Community Edition 2.9B 以後,E4X 也可以在在這個企業文檔管理系統中可用。

外部連結