欢迎访问宙启技术站
智能推送

Python中的XMLDOM技术详解

发布时间:2024-01-08 08:18:52

XML DOM(Document Object Model)是一种对XML文档进行解析和操作的技术。它将XML文档表示为一个层次化的节点树,通过调用节点的方法和属性,可以对XML文档进行增删改查等操作。

Python中提供了xml.dom包来支持XML DOM技术。下面是一个使用XML DOM解析和操作XML文档的例子:

from xml.dom import minidom

# 解析XML文档
doc = minidom.parse("example.xml")

# 获取根节点
root = doc.documentElement

# 获取子节点
childs = root.childNodes

# 遍历子节点
for child in childs:
    if child.nodeName == "book":
        # 获取book节点的属性
        print(child.getAttribute("id"))
        
        # 获取book节点的子节点
        book_childs = child.childNodes
        
        # 遍历book节点的子节点
        for book_child in book_childs:
            if book_child.nodeName == "title":
                # 获取title节点的文本内容
                print(book_child.firstChild.data)
                
            if book_child.nodeName == "author":
                # 获取author节点的文本内容
                print(book_child.firstChild.data)
                
# 创建新节点
new_book = doc.createElement("book")
new_book.setAttribute("id", "3")

new_title = doc.createElement("title")
new_title_text = doc.createTextNode("Book3")
new_title.appendChild(new_title_text)

new_author = doc.createElement("author")
new_author_text = doc.createTextNode("Author3")
new_author.appendChild(new_author_text)

new_book.appendChild(new_title)
new_book.appendChild(new_author)

# 将新节点插入文档中
root.appendChild(new_book)

# 生成新的XML文档
new_doc = doc.toxml()

# 输出新的XML文档
print(new_doc)

# 保存新的XML文档到文件
with open("new_example.xml", "w") as f:
    f.write(new_doc)

上述例子首先使用minidom.parse方法解析了一个名为"example.xml"的XML文档,并获取到了根节点。然后通过遍历根节点的子节点,获取了每本书的ID、标题和作者。接下来创建了一个新的book节点,并添加了id、title和author节点。最后将新节点插入到文档中,生成了一个新的XML文档,并保存到文件中。

通过上述例子可以看出,XML DOM技术可以方便地解析和操作XML文档。它允许开发者通过节点的方法和属性来访问和修改XML文档的元素和属性。同时,Python中的xml.dom包提供了一系列的方法和类来支持XML DOM技术的使用,使得开发者可以更加方便地处理XML数据。