E4X(ECMAScript for XML)处理XML做了新的语法扩展,也定义了新的XML对象。
E4X的类型:
XML XML结构中的任何一个独立的部分
XMLList XML对象的集合
Namespace:命名空间前缀与命名空间URI之间的映射
QName:有内部名称和命名空间URI组成的一个限定名
E4X修改的新语法:
使用(..)表示匹配所有后代元素,使用@ 字符表示应该返回一个或多个特性;
(*)是一个通配符,可以匹配任意类型的节点;
所有的这些查询都是可以通过一组执行相同操作的方法来实现。
XML类型:
var x = new XML();会创建一个空的XML对象,我们可以向其中添加数据或XML字符串。
toString()和toXMLString()方法会返回XML对象及其子节点的XML字符串表示。
XMLList类型:
var list = new XMLList();
与XML构造函数一样,传入一个待解析的XML字符串
Namespace类型:
var ns = new Namespace();
传入URI或在前缀加URI,就可以初始化Namespace对象,如果XML字面量中包含命名空间,或者通过XML构造函数解析的XML字符串中包含命名空间信息,那么就会自动创建Namespace对象。
QName类型:
QName类型表现的是XML对象的限定名,即命名空间与内部名称的组合。
var wrox = newNamespace(‘wrox’, “https:www.baidu.com/”);
var worxMessage = new QName(wrox, 'message');
创建了QName对象之后,可以访问它的两个属性uri 和localname。其中,uri属性范湖在创建对象时指定的命名空间的URI,而localName属性返回限定名中的内部名称。
其他节点类型:
attributes()返回XML对象的所有特性;
comments();返回XML对象的所有文本子节点;
elements(tagname):返回XML对象的所有子元素;
processingInstructions(name):返回XML对象的所有处理指令;
text():返回XML对象的所有文本子节点。