ECMAScript for XML (E4X) was an extension toECMAScript (which includesActionScript,JavaScript, andJScript) to add native support for Extensible Markup Language (XML).[1] The goal was to provide a simpler alternative to theDocument Object Model (DOM) interface for accessing XML documents. E4X added XML as aprimitive data structure to allow faster access[clarification needed] and better support within the language.
E4X was standardized byEcma International in theECMA-357 standard. The first edition was published in June 2004 and the second edition in December 2005. However, the E4X standard was deprecated by the Mozilla Foundation in 2014,[2] and it was withdrawn by ISO/IEC in 2021.[1]
The first implementation of E4X was designed by Terry Lucas and John Schneider and appeared inBEA's Weblogic Workshop 7.0, released in February 2002.[citation needed] BEA's implementation was based onRhino and released before the ECMAScript E4X spec was completed in June 2004.[citation needed]
E4X is supported by Mozilla'sRhino, as well as byTamarin, the JavaScript engine used in theFlash virtual machine.[citation needed] However, it is unsupported by other common engines likeNitro (Safari),V8 (Google Chrome),Carakan (Opera), andChakra (Internet Explorer).[3]
E4X was supported bySpiderMonkey (used inFirefox andThunderbird). However, E4X was deprecated in Firefox 10[4] and eventually removed in Firefox 21.[5][clarification needed]
E4X was supported by theOpenOffice.org software suite.[citation needed]
letsales=<salesvendor="John"><itemtype="peas"price="4"quantity="6"/><itemtype="carrot"price="3"quantity="10"/><itemtype="chips"price="5"quantity="3"/></sales>;alert(sales.item.(@type=="carrot").@quantity);alert(sales.@vendor);foreach(letpriceinsales..@price){alert(price);}deletesales.item[0];sales.item+=<itemtype="oranges"price="4"/>;sales.item.(@type=="oranges").@quantity=4;