XML E4X学习笔记

什么是XML E4X

XML E4X,即“Extensible Markup Language (XML) in ECMAScript (E4X)”是一种基于ECMAScript标准的XML处理模型。它提供了一种简单、优雅的方式来处理XML文档,并且易于使用。

获取XML元素

通过使用点符号(.)获取XML元素:

javascriptCopy Code
let xml = <books> <book> <title>《JavaScript权威指南》</title> <author>David Flanagan</author> </book> <book> <title>《JavaScript语言精粹》</title> <author>Douglas Crockford</author> </book> </books>; let titles = xml.book.title;

在上面的例子中,我们使用点符号获取了所有<book>元素的<title>子元素。这个表达式返回一个XMLList对象,它包含了所有匹配的元素。

迭代XML元素

我们可以使用for-each循环遍历一个XMLList对象:

javascriptCopy Code
for each (let title in titles) { console.log(title); }

在上面的例子中,我们遍历了所有<title>元素,并输出它们的文本内容。

过滤XML元素

我们可以使用条件表达式过滤XML元素:

javascriptCopy Code
let xml = <books> <book> <title>《JavaScript权威指南》</title> <author>David Flanagan</author> </book> <book> <title>《JavaScript语言精粹》</title> <author>Douglas Crockford</author> </book> </books>; let jsBooks = xml.book.(author == "Douglas Crockford");

在上面的例子中,我们使用括号和条件表达式过滤了所有作者是“Douglas Crockford”的<book>元素。

修改XML元素

我们可以使用等号(=)来修改XML元素:

javascriptCopy Code
xml.book[0].title = "《JavaScript高级编程》";

在上面的例子中,我们将第一个<book>元素的<title>子元素的文本内容修改为“《JavaScript高级编程》”。

创建XML元素

我们可以使用字面量语法来创建XML元素:

javascriptCopy Code
let xml = <person name="Bob" age="30"> <address> <city>Shanghai</city> <street>123 Main St.</street> </address> </person>;

在上面的例子中,我们创建了一个<person>元素和一个<address>子元素,并设置了它们的属性和文本内容。

实例

下面是一个使用XML E4X处理XML文档的实例:

javascriptCopy Code
let xmlString = '<books>' + '<book>' + '<title>《JavaScript权威指南》</title>' + '<author>David Flanagan</author>' + '</book>' + '<book>' + '<title>《JavaScript语言精粹》</title>' + '<author>Douglas Crockford</author>' + '</book>' + '</books>'; let xml = new XML(xmlString); let jsBooks = xml.book.(author == "Douglas Crockford"); for each (let title in jsBooks.title) { console.log(title); }

在上面的例子中,我们首先将一个XML字符串转换为XML对象,然后使用条件表达式过滤出作者是“Douglas Crockford”的<book>元素,最后遍历这些元素的<title>子元素并输出它们的文本内容。