XML - E4X
XML-E4X(ECMAScript for XML)是一种使用ECMAScript语言处理XML文档的方式。它首次出现在ECMAScript 4.0规范中,但是该规范最终没有被接受。然而,许多浏览器和JavaScript引擎仍支持XML-E4X。
使用XML-E4X,可以像处理常规对象一样处理XML文档。具体来说,以下是XML-E4X的主要特点:
1.元素和属性可以像JavaScript对象一样访问。
2.支持XPath风格的表达式。
3.可以使用类似于CSS选择器的选择器。
下面是一个XML-E4X的示例:
var xml =
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>;
在上面的代码中,我们使用一个XML字面量创建了一个XML文档。现在我们可以使用JavaScript的点运算符或方括号访问该文档的标签、属性和文本内容:
console.log(xml.book[0].title); // <title lang="en">Everyday Italian</title>
console.log(xml.book[0].title.@lang); // en
console.log(xml.book[0].price.text()); // 30.00
上述代码将输出上面代码中的每个相应属性和子目录的值。其中,@字符表示我们正在访问元素的属性。
此外,XML-E4X还支持“循环”元素,或者像其他用户所说的过滤元素,可以使用类似CSS选择器的语法或XPath表达式:
// 使用CSS选择器
console.log(xml..book.(@category == "CHILDREN").title); // <title lang="en">Harry Potter</title>
// 使用XPath表达式
console.log(xml..book.(@category == "CHILDREN")[0].title); // <title lang="en">Harry Potter</title>
在上述示例中,我们使用了两种方法,一种是使用CSS选择器,另一种是使用XPath表达式。前者使用@运算符来访问属性,后者则是类似于JavaScript数组的表示形式。
我们可以看到,XML-E4X是一个非常强大的工具,可以使我们以一种准确的方式处理XML文档,而无需编写冗长的代码。虽然它不再在ECMAScript规范中得到支持,但它仍然是一个有用的库,可以在许多浏览器和JavaScript引擎中使用。