XML E4X学习笔记
什么是XML E4X
XML E4X,即“Extensible Markup Language (XML) in ECMAScript (E4X)”是一种基于ECMAScript标准的XML处理模型。它提供了一种简单、优雅的方式来处理XML文档,并且易于使用。
获取XML元素
通过使用点符号(.
)获取XML元素:
javascriptCopy Codelet 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 Codefor each (let title in titles) {
console.log(title);
}
在上面的例子中,我们遍历了所有<title>
元素,并输出它们的文本内容。
过滤XML元素
我们可以使用条件表达式过滤XML元素:
javascriptCopy Codelet 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 Codexml.book[0].title = "《JavaScript高级编程》";
在上面的例子中,我们将第一个<book>
元素的<title>
子元素的文本内容修改为“《JavaScript高级编程》”。
创建XML元素
我们可以使用字面量语法来创建XML元素:
javascriptCopy Codelet xml = <person name="Bob" age="30">
<address>
<city>Shanghai</city>
<street>123 Main St.</street>
</address>
</person>;
在上面的例子中,我们创建了一个<person>
元素和一个<address>
子元素,并设置了它们的属性和文本内容。
实例
下面是一个使用XML E4X处理XML文档的实例:
javascriptCopy Codelet 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>
子元素并输出它们的文本内容。