Python的minidom模块是一种轻量级的DOM解析器,可以用于解析和生成XML文档。以下是Python minidom模块的用法示例:
- 解析XML文档
使用minidom模块解析XML文档非常简单。以下是一个解析XML文档的示例:
from xml.dom import minidom
# 解析XML文档
doc = minidom.parse("data.xml")
# 获取根元素
root = doc.documentElement
# 获取子元素
items = root.getElementsByTagName("item")
# 遍历子元素
for item in items:
# 获取子元素的属性和文本
id = item.getAttribute("id")
name = item.getElementsByTagName("name")[0].childNodes[0].data
price = item.getElementsByTagName("price")[0].childNodes[0].data
# 打印子元素的属性和文本
print("id: %s, name: %s, price: %s" % (id, name, price))
在上面的示例中,minidom.parse()
函数解析XML文档,并返回Document对象。使用documentElement
属性获取根元素,使用getElementsByTagName()
方法获取子元素。使用getAttribute()
方法获取元素的属性,使用childNodes
属性获取元素的子节点,使用data
属性获取文本节点的文本。
- 创建XML文档
使用minidom模块创建XML文档也非常简单。以下是一个创建XML文档的示例:
from xml.dom import minidom
# 创建XML文档
doc = minidom.Document()
# 创建根元素
root = doc.createElement("items")
doc.appendChild(root)
# 创建子元素
item1 = doc.createElement("item")
item1.setAttribute("id", "1")
root.appendChild(item1)
name1 = doc.createElement("name")
name1.appendChild(doc.createTextNode("Item 1"))
item1.appendChild(name1)
price1 = doc.createElement("price")
price1.appendChild(doc.createTextNode("10.00"))
item1.appendChild(price1)
item2 = doc.createElement("item")
item2.setAttribute("id", "2")
root.appendChild(item2)
name2 = doc.createElement("name")
name2.appendChild(doc.createTextNode("Item 2"))
item2.appendChild(name2)
price2 = doc.createElement("price")
price2.appendChild(doc.createTextNode("20.00"))
item2.appendChild(price2)
# 将XML文档写入文件
with open("data.xml", "w") as f:
f.write(doc.toprettyxml(indent=" "))
在上面的示例中,minidom.Document()
函数创建XML文档对象。使用createElement()
方法创建元素,使用setAttribute()
方法设置元素的属性,使用appendChild()
方法将元素添加到父元素中,使用createTextNode()
方法创建文本节点,使用toprettyxml()
方法将XML文档转换为字符串并写入文件。
希望这些示例能够帮助您了解Python minidom模块的用法。minidom模块提供了许多其他功能,例如创建和修改XML文档、处理异常等。可以查看官方文档以获取更多。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python minidom模块用法示例【DOM写入和解析XML】 - Python技术站