e4x java_E4X:ECMAScript for XML

E4X:ECMAScript for XML

由 学院君 创建于6个月前, 最后更新于 6个月前

版本号 #1

253 views

0 likes

0 collects

「ECMAScript for XML」简称 E4X,是 JavaScript 的一个标准扩展,它为处理 XML 文档定义了一系列强大的特性,Spidermonkey 1.5 和 Rhino 1.6 已经支持 E4X。由于多数浏览器还未支持 E4X,所以 E4X 被认为是一种基于 Spidermonkey 或 Rhino 引擎的服务端技术。

E4X 将 XML 文档看作一个 XML 对象,将 XML 片段看作一个紧密相关的 XML 列表对象。对 XML 对象执行 typeof 运算的结果是 xml。本节将介绍创建和使用 XML 对象的一些方法,但仅限于快速入门,更多细节可以参考官方文档。

我们可以通过 XML 标签直接量来创建 XML 对象:

var pt =

Hydrogen

Helium

Lithium

;

// 给这个 XML 对象新增一个元素

pt.element += Beryllium;

可以通过花括号在 XML 中嵌入 JavaScript 表达式:

pt = ;

var elements = ['Hydrogen', 'Helium', 'Lithium'];

for (var n = 0; n < elements.length; n++) {

pt.element += {elements[n]}

}

除了通过直接量外,还可以通过对象的方式增加一个新元素:

pt.element = new XML('Boron');

还可以通过 XMLList() 一次添加多个元素:

pt.element = new XMLList('Carbon' +

'Nitrogen');

访问 XML 元素也很简单:

var elements = pt.element;

var names = pt.element.name;

var name = names[0];

此外,还支持后代运算符(..)和通配符方式访问:

var names2 = pt..name;

var names3 = pt.element.*;

上面两种方式和 pt.element.name 返回结果一致。

E4X中使用@来区分属性名和标签名(从XPath中借鉴):

var atomicNumber = pt.element[1].@id;

还支持通过通配符来获取所有属性:

var attributes = pt.element[1].*;

E4X 甚至还支持通过以下语法对列表进行过滤:

var lightElements = pt.element.(@id < 3)

var bElementNames = pt.element.(name.charAt(0) == 'B').name;

我们可以通过 for/each 对 XML 进行遍历:

for each (var e in pt.element)

console.log(e.name);

for each (var n in pt.element.@*)

console.log(n);

E4X 表达式可以出现在赋值表达式的左侧,从而支持对 XML 的标签和属性进行修改:

pt.element[1].name = 'XXX';

pt.element[1].@id = 20;

delete 运算符可用于删除 XML 中的标签和属性:

delete pt.element[7].@id;

delete pt.element[7];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值