python读取xml文件示例

  最近用到了xml格式的文件,对这些没啥印象,顺便学习一下,做个例子,方便后续查阅。

xml文档:

 1 <annotation>
 2     <folder>VOC2012</folder>
 3     <filename>2007_000027.jpg</filename>
 4     <source>
 5         <database>The VOC2007 Database</database>
 6         <annotation>PASCAL VOC2007</annotation>
 7         <image>flickr</image>
 8     </source>
 9     <size>
10         <width>486</width>
11         <height>500</height>
12         <depth>3</depth>
13     </size>
14     <segmented>0</segmented>
15     <object>
16         <name>person</name>
17         <pose>Unspecified</pose>
18         <truncated>0</truncated>
19         <difficult>0</difficult>
20         <bndbox>
21             <xmin>174</xmin>
22             <ymin>101</ymin>
23             <xmax>349</xmax>
24             <ymax>351</ymax>
25         </bndbox>
26         <part>
27             <name>head</name>
28             <bndbox>
29                 <xmin>169</xmin>
30                 <ymin>104</ymin>
31                 <xmax>209</xmax>
32                 <ymax>146</ymax>
33             </bndbox>
34         </part>
35         <part>
36             <name>hand</name>
37             <bndbox>
38                 <xmin>278</xmin>
39                 <ymin>210</ymin>
40                 <xmax>297</xmax>
41                 <ymax>233</ymax>
42             </bndbox>
43         </part>
44         <part>
45             <name>foot</name>
46             <bndbox>
47                 <xmin>273</xmin>
48                 <ymin>333</ymin>
49                 <xmax>297</xmax>
50                 <ymax>354</ymax>
51             </bndbox>
52         </part>
53         <part>
54             <name>foot</name>
55             <bndbox>
56                 <xmin>319</xmin>
57                 <ymin>307</ymin>
58                 <xmax>340</xmax>
59                 <ymax>326</ymax>
60             </bndbox>
61         </part>
62     </object>
63 </annotation>
View Code

  使用python代码读取里面的内容:

 1 #python3
 2 # -- coding: utf-8 --
 3 
 4 import numpy as np
 5 import xml.etree.ElementTree as ET
 6 
 7 et = ET.parse('test.xml')
 8 element = et.getroot()
 9 
10 # 获取所有object对象
11 element_objs = element.findall('object')
12 # 图片文件名
13 element_filename = element.find('filename').text
14 print('element_filename:' , element_filename)
15 element_width = int(element.find('size').find('width').text)
16 element_height = int(element.find('size').find('height').text)
17 
18 if len(element_objs) > 0:
19     for element_obj in element_objs:
20         class_name = element_obj.find('name').text
21         print('class_name:' , class_name)
22 
23         obj_bbox = element_obj.find('bndbox')
24         x1 = int(round(float(obj_bbox.find('xmin').text)))
25         y1 = int(round(float(obj_bbox.find('ymin').text)))
26         x2 = int(round(float(obj_bbox.find('xmax').text)))
27         y2 = int(round(float(obj_bbox.find('ymax').text)))
28         print('(x1,y1,x2,y2):' , (x1 , y1 , x2 , y2))
View Code

每日一言:

无冥冥之志者,无昭昭之明,无昏昏之事者,无赫赫之功。

参考文档:https://blog.csdn.net/hanshuobest/article/details/78604704

原文地址:https://www.cnblogs.com/dylancao/p/9494328.html