6

E4X (Ecma-357) 是对 ECMAScript 的扩展,它添加了 XML 文字作为第一类原语。这太棒了,但是只有 Mozilla 和 Adob​​e 支持(也没有 V8 和 IE 支持),从 Web 开发人员的角度来看,E4X 几乎已经死了,必须支持任何现代浏览器的用户。

围绕在 JavaScript 中实现 XML 文字还有哪些其他工作?有没有办法在 JavaScript 中获得类似于 XML 文字或 E4X 的东西,任何人都在研究?也许一些框架插件?

前几天我遇到了 LunaScript (asana.com/Luna),它用类似 JavaScript 的语言实现了 XML 文字。这很好,但我可能永远不会在 Asana 工作,因此永远不会编写 LunaScript。

4

3 回答 3

2

JavaScript中有一个用于XML的开源项目:

http://xmljs.sourceforge.net/

XML for <SCRIPT>是一个功能强大、符合标准的 JavaScript XML 解析器,旨在帮助 Web 应用程序设计人员实现利用 XML 数据的客户端操作的跨平台应用程序。XML for <SCRIPT>提供一整套工具,包括:

* A standards-compliant W3C DOM Level 2 processor
* An XPath processor
* A standards-compliant SAX processor
* A simple (classic) DOM processor
* Proxies for XML retrieval from any domain
* Utilities for XML and application development

XML for <SCRIPT>是免费软件,根据 GNU 宽松通用公共许可证 (LGPL) 的条款分发,这是一种开源许可证。

于 2010-02-14T05:41:49.490 回答
2

就个人而言,我认为 XML 文字根本没有任何优势。

var el= <foo>bar<baz/></foo>;

并没有明显优于:

var el= new XML('<foo>bar<baz/></foo>');

将正则表达式文字添加到 JavaScript 有一个合理的理由:否则反斜杠会非常痛苦。(虽然我个人更喜欢原始字符串。)由于反斜杠在 XML 中并不常见,我认为那里没有任何这样的理由。

将 XML 的完整(复杂!)语法添加为基本语言语法并不是一种成功。事实上,它在实践中造成了严重的安全问题

我希望 E4X 消失,而不是更多。

于 2010-02-14T10:13:04.450 回答
1

js-xml-literal通过代码重写的方式在任何 Javascript 引擎中添加了对 XML 文字的支持。

https://github.com/laverdet/js-xml-literal

语法是 E4X 的子集,但是 API 更接近地模仿 DOM。在客户端,您可以使用 XML 文字直接与浏览器的 DOM 交互;在服务器端(NodeJS),您可以在刷新到字符串之前对虚拟 DOM 进行操作。

于 2011-01-06T21:49:02.127 回答