E4X
外观
ECMAScript for XML(E4X)是一扩展了ECMAScript(包含ActionScript、DMDScript、JavaScript、JScript等)的程式语言,它增加对 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 在(至少部分地)SpiderMonkey(Gecko的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及以后版本支持。
- Macromedia的ActionScript3脚本语言完整地支持 E4X,ActionScript 3 在2005年末已可用。Adobe 于 2006年6月28日随 Flash Player 9 正式的发布了该语言。
- E4X 在 Flash CS3、Adobe AIR 和 Adobe Flex 中可用,因为它们都使用 ActionScript 3 作为脚本语言。
- E4X 在 Adobe Acrobat 和 Adobe Reader 8.0 或更高版本中可用。
- E4X 在 Aptana 的 Jaxer Ajax 应用服务器中可用,该服务器使用了 Mozilla 的服务器端引擎。
- 从 Alfresco Community Edition 2.9B 以后,E4X 也可以在在这个企业文档管理系统中可用。