E4X是2004年发布的ECMA-357标准,允许JavaScript直接以字面量形式处理XML,支持点号语法、动态操作和序列化,但仅Firefox 1.5–21原生支持,现已被弃用。

E4X(ECMAScript for XML)是 JavaScript 的一个官方扩展标准(ECMA-357),发布于 2004 年,目标是让开发者能像操作普通对象一样直接处理 XML 数据,无需依赖 DOM API 或外部解析器。
XML 字面量:声明即用
E4X 允许你用类似 HTML 的语法直接在 JS 中写 XML 结构,它会被识别为原生 XML 对象:
- 写法简洁:
var config = ; - 不是字符串,也不是 DOM 节点,而是可直接调用方法的 XML 类型(
typeof config === "xml") - 支持 UTF-8,中文、符号等字符天然可用,如
西游记
点号语法与快速访问
不用 XPath 表达式或 getElementsByTagName,用点号和特殊符号就能精准定位:
-
config.server.@port→ 获取属性值 "8080" -
config..title→ 后代运算符,匹配所有节点(返回 XMLList) -
config.*→ 通配符,获取所有子元素 -
config.server.(@port == "8080")→ 带条件过滤的节点集合
动态操作 XML 内容
增删改查都像操作数组或对象一样直观:
立即学习“Java免费学习笔记(深入)”;
- 添加节点:
config.database +=admin ; - 修改文本:
config.server.@port = "9000"; - 替换整个子树:
config.server =; - 序列化输出:
config.toXMLString()返回格式化 XML 字符串
现实中的使用限制
E4X 功能强大,但实际落地需谨慎:
- 仅 Firefox 1.5–21 原生支持;Chrome、Edge、Safari、现代 Node.js 均不支持
- 没有被纳入 ES6+ 标准,已事实废弃,MDN 明确标注为“非标准、已弃用”
- 若项目需兼容性,建议改用 DOMParser + XPath、xml2js、或现代替代方案如 XMLBuilder + fetch + text()
- 少数遗留系统(如旧版 Adobe Flex、Rhino 引擎服务端脚本)仍可能用到










