1.使用minidom解析 XML 文档
import xml.dom.minidom
# 使用minidom解析器打开 XML 文档
document_tree=xml.dom.minidom.parse("storehouse.xml")
collection=document_tree.documentElement#把所有元素存入集合中
print(collection.toxml())
goods= collection.getElementsByTagName("goods")
goods_record=[]
for good_object in goods: #获取商品的详细信息
if good_object.hasAttribute("category"):
goods_record.append(good_object.getAttribute("category"))
name= good_object.getElementsByTagName('name')[0]
goods_record.append(name.childNodes[0].data)
amount= good_object.getElementsByTagName('amount')[0]
goods_record.append(amount.childNodes[0].data)
price = good_object.getElementsByTagName('price')[0]
goods_record.append(price.childNodes[0].data)
print(goods_record)
C:\Anaconda3\python.exe D:/AI/三酷猫源代码/第10章/DOM_parse_XML.py
<storehouse>
<goods category="fish">
<title>淡水鱼</title>
<name>鲫鱼</name>
<amount>18</amount>
<price>8</price>
</goods>
<goods category="fruit">
<title>温带水果</title>
<name>猕猴桃</name>
<amount>10</amount>
<price>10</price>
</goods>
</storehouse>
['fish', '鲫鱼', '18', '8', 'fruit', '猕猴桃', '10', '10']
Process finished with exit code 0
2.用DOM实现对XML内容的修改
修改前
<storehouse>
<goods category="fish">
<title>淡水鱼</title>
<name>鲫鱼</name>
<amount>18</amount>
<price>8</price>
</goods>
<goods category="fruit">
<title>温带水果</title>
<name>猕猴桃</name>
<amount>10</amount>
<price>10</price>
</goods>
</storehouse>
import xml.dom.minidom
# 使用minidom解析器打开 XML 文档
document_tree=xml.dom.minidom.parse("storehouse.xml")
collection=document_tree.documentElement#把所有元素存入集合中
price= collection.getElementsByTagName("price")
price_object=price[0]
price_object.firstChild.data=8.2
print('修改商品价格成功!')
goods=collection.getElementsByTagName("goods")
collection.removeChild(goods[1])
#collection.removeChild(collection.childNodes[1])
print('节点删除成功!')
f=open("storehouse.xml","w",encoding="utf-8")
f.write(document_tree.toxml())
f.close()
C:\Anaconda3\python.exe D:/AI/三酷猫源代码/第10章/DOM_edit_XML.py
修改商品价格成功!
节点删除成功!
Process finished with exit code 0
修改后
<?xml version="1.0" ?><storehouse>
<goods category="fish">
<title>淡水鱼</title>
<name>鲫鱼</name>
<amount>18</amount>
<price>8.2</price>
</goods>
</storehouse>
本文介绍如何使用Python的minidom模块解析和编辑XML文档。通过实例展示了读取XML元素信息的方法,包括类别、名称、数量和价格等,并演示了如何修改商品价格及删除节点。
576

被折叠的 条评论
为什么被折叠?



