Xml文件读取与编写
xml文件一般如下所示,<>为node;有可能还有属性Attribute,一般网页中会有,我们只是存储信息,就没有涉及,例如;
<annotation>
<folder>VOC2007</folder>
<filename>test_1.jpg</filename>
<size>
<width>1920</width>
<height>2560</height>
<depth>3</depth>
</size>
<object>
<name>object</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>457</xmin>
<ymin>436</ymin>
<xmax>574</xmax>
<ymax>526</ymax>
</bndbox>
</object>
</annotation>
xml文件读取
标配代码如下,加载包,加载文件:
from xml.dom.minidom import parse #加载包
domTree = parse("./customer.xml")
# 文档根元素
rootNode = domTree.documentElement
1、按照节点名称查找
# 通过名称object获取属性值
list1 = rootNode.getElementsByTagName("object")
此时得到是一个node list
2、子节点查找
child = list1[0].childNodes
注意:
1、object子节点为name、…、bndbox等。
2、这里也可以继续搜按照名字搜list1[0].getElementsByTagName(“xmin”)
3、我们要想打印节点内的text需要对节点继续找子节点list1[0].getElementsByTagName(“xmin”).childNodes[0].value
xml文件写入
1、创建一个节点,设置属性
# 新建一个customer节点
customer_node = domTree.createElement("customer")
customer_node.setAttribute("ID", "C003")
2、子节点
# 创建name节点,并设置textValue
name_node = domTree.createElement("name")
name_text_value = domTree.createTextNode("kavin")
name_node.appendChild(name_text_value) # 把文本节点挂到name_node节点
customer_node.appendChild(name_node)
得到如下:
<customer ID="C003">
<name>kavin</name>
</customer>