当前位置:   article > 正文

python读取xml文件_python arxml

python arxml

使用xml.dom解析xml


一个 DOM 的解析器在解析一个 XML 文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。

python中用xml.dom.minidom来解析xml文件,实例如下:

  1. def readXml(xml):
  2. print("read xml file.")
  3. for fileName in os.listdir("Annotations"):
  4. print(fileName)
  5. # 使用minidom解析器打开xml文件
  6. dom = xml.dom.minidom.parse('Annotations/'+fileName)
  7. # 得到文档元素对象
  8. root = dom.documentElement
  9. # 获取图像宽高
  10. get_width = root.getElementsByTagName('width')
  11. width = get_width[0].firstChild.data
  12. get_height = root.getElementsByTagName('height')
  13. height = get_height[0].firstChild.data
  14. # 获取对象
  15. objects = root.getElementsByTagName('object') # 获取所有object标签
  16. ob_num = len(objects) # 图中蝴蝶个数
  17. ob_classes = []
  18. ob_coors = []
  19. for ob in objects:
  20. # 蝴蝶种类
  21. ob_class = ob.getElementsByTagName('name')
  22. ob_classes.append(ob_class[0].firstChild.data)
  23. # ob_classes.append(ob_class[0].ChildNodes[0].data)
  24. # 标记框位置
  25. temp_coor = []
  26. xmin = ob.getElementsByTagName('xmin')
  27. temp_coor.append(xmin[0].firstChild.data)
  28. xmax = ob.getElementsByTagName('xmax')
  29. temp_coor.append(xmax[0].firstChild.data)
  30. ymin = ob.getElementsByTagName('ymin')
  31. temp_coor.append(ymin[0].firstChild.data)
  32. ymax = ob.getElementsByTagName('ymax')
  33. temp_coor.append(ymax[0].firstChild.data)
  34. ob_coors.append(temp_coor)
  35. return width, height, ob_num, ob_classes, ob_coors

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/897307
推荐阅读
相关标签
  

闽ICP备14008679号