📜  XML DOM教程(1)

📅  最后修改于: 2023-12-03 14:48:38.408000             🧑  作者: Mango

XML DOM教程

什么是XML DOM?

XML DOM (XML Document Object Model) 是一种树状的数据结构,用于存储和操作XML文档。它定义了XML文档中各个元素、属性、文本等的层级关系和表示方法。

如何使用XML DOM?

在JavaScript中,可以使用以下代码创建XML DOM对象:

var xmlDoc = new DOMParser().parseFromString(xmlString, "text/xml");

这里的xmlString是XML字符串,它会被解析成XML DOM对象xmlDoc。使用XML DOM对象,可以对XML文档进行增删改查等操作。例如,以下代码可以获取XML文档中所有名为“book”的元素:

var books = xmlDoc.getElementsByTagName("book");
XML DOM的层级结构

XML DOM的层级结构如下图所示:

XML DOM结构

在XML DOM中,文档本身是一个节点,根元素是文档的第一个子节点,其他元素、属性、文本等都是节点的子元素。

XML DOM节点的属性和方法

以下是XML DOM节点常用的属性和方法:

  • nodeName:节点的名称
  • nodeValue:节点的值
  • nodeType:节点的类型
  • parentNode:节点的父节点
  • childNodes:节点的所有子节点
  • hasChildNodes():是否有子节点
  • getElementsByTagName():获取节点的某种类型的子元素
  • getAttribute():获取节点的属性值
  • setAttribute():设置节点的属性值
XML DOM节点的类型

以下是XML DOM节点可能的类型:

  • Element:元素节点,如
  • Attribute:属性节点,如id="123"
  • Text:文本节点,如"This is a book"
  • Comment:注释节点,如
  • Document:文档节点,整个文档只有一个
  • DocumentType:文档类型节点,如
示例

以下是一个简单的XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<booklist>
    <book id="1">
        <title>Harry Potter and the Philosopher's Stone</title>
        <author>J.K. Rowling</author>
        <price>20.0</price>
    </book>
    <book id="2">
        <title>The Hobbit</title>
        <author>J.R.R. Tolkien</author>
        <price>18.0</price>
    </book>
    <book id="3">
        <title>The Da Vinci Code</title>
        <author>Dan Brown</author>
        <price>25.0</price>
    </book>
</booklist>

以下是使用XML DOM获取其中所有书的标题和价格:

var xmlDoc = new DOMParser().parseFromString(xmlString, "text/xml");
var books = xmlDoc.getElementsByTagName("book");
for (var i = 0; i < books.length; i++) {
    var title = books[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
    var price = books[i].getElementsByTagName("price")[0].childNodes[0].nodeValue;
    console.log(title + ": " + price);
}

输出结果为:

Harry Potter and the Philosopher's Stone: 20.0
The Hobbit: 18.0
The Da Vinci Code: 25.0
结论

XML DOM是操作XML文档的重要工具,可以方便地对XML文档进行增删改查等操作。熟练掌握XML DOM的使用,尤其是对节点属性和方法的熟悉程度,可以极大地提高XML文档操作的效率和方便性。