Python基础-XML文件解析
本文最后更新于:2021年1月8日 晚上
XML 指可扩展标记语言(eXtensible Markup Language),常用于传输和存储数据。
- 由标签对组成
- 标签可以有属性:
- 标签对可以嵌入数据:
abc - 标签可以嵌入子标签(具有层级关系)
<annotation>
<folder>VOC2007</folder>
<filename>000001.jpg</filename>
<source>
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
<flickrid>341012865</flickrid>
</source>
<owner>
<flickrid>Fried Camels</flickrid>
<name>Jinky the Fruit Bat</name>
</owner>
<size>
<width>353</width>
<height>500</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>dog</name>
<pose>Left</pose>
<truncated>1</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>48</xmin>
<ymin>240</ymin>
<xmax>195</xmax>
<ymax>371</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Left</pose>
<truncated>1</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>8</xmin>
<ymin>12</ymin>
<xmax>352</xmax>
<ymax>498</ymax>
</bndbox>
</object>
</annotation>
【1】通过xml.dom解析xml
from xml.dom.minidom import parse
import xml.dom.minidom
import os
#获取指定文件夹下的所有文件名
filePath = 'C:\\Users\\GWL\\Desktop\\Annotations\\'
dirs=os.listdir(filePath)
for file in dirs:
file2=filePath+file
#print(file)
DOMTree = xml.dom.minidom.parse(file2) #使用minidom解析器打开 XML 文档
collection = DOMTree.documentElement #得到xml文档对象
objects = collection.getElementsByTagName("object") #获取所有子标签object
category = []
#print("*****object*****")
for object in objects :
name = object.getElementsByTagName('name')[0]
category.append(name.childNodes[0].data)
#print(" %s" % name.childNodes[0].data)
#print('\n')
#a=len(category)
if len(category)!=1:
print(category,'\n')
遇到的问题
ImportError: No module named 'xml.dom'; 'xml' is not a package
- 这是由于将python文件命称为xml.py,运行python程序时出现自导现象,从而报错!
参考链接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!