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数据。
