xml文件读取与编写

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>

发布了140 篇原创文章 · 获赞 26 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/CLOUD_J/article/details/103970778