E4X(Ecma-357)是ECMAScript的扩展,它将XML文字添加为第一类基元。这很棒,但只有Mozilla和Adobe支持(没有V8和IE支持),从Web开发人员的角度来看,E4X几乎已经死了,它必须支持用户使用任何现代浏览器。
在JavaScript中实现XML文字方面还有哪些其他工作要做?有没有办法在JavaScript中获得类似于XML文字或E4X的东西,任何人都在努力?也许是框架的一些插件?
前几天我遇到了LunaScript(asana.com/Luna),它已经用类似JavaScript的语言实现了XML文字。这很好,但我可能永远不会在Asana工作,因此永远不会写LunaScript。
答案 0 :(得分:2)
JavaScript中有一个XML开源项目:
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)(一种开源许可证)的条款进行分发。
答案 1 :(得分:2)
就个人而言,我认为XML文字根本没有任何优势。
var el= <foo>bar<baz/></foo>;
并没有明显好于:
var el= new XML('<foo>bar<baz/></foo>');
将正则表达式文字添加到JavaScript有一个合理的理由:否则反斜杠是一种超级痛苦。 (虽然我个人更喜欢原始字符串。)由于反斜杠在XML中并不常见,我认为没有任何这样的理由。
添加XML的完整(复杂!)语法作为基本语言语法并非胜利。实际上它在实践中引起了grievous security problems。
我希望E4X消失,而不是更多相同。
答案 2 :(得分:1)
js-xml-literal 通过代码重写在任何Javascript引擎中添加对XML文字的支持。
https://github.com/laverdet/js-xml-literal
语法是E4X的子集,但API更密切地模仿DOM。在客户端,您可以使用XML文字直接与浏览器的DOM交互;在服务器端(NodeJS),您可以在刷新到字符串之前对虚拟DOM进行操作。