Python读xml

Python读xml

之前用过c++读xml,太困难了,可以参考这篇文章c++读xml,python就相对容易些。
python读xml的方法比较多,下面就介绍两种。
1、xml.dom.minidom

import glob
import xml.dom.minidom
for xmlPath in glob.glob("../asset/xml" + "/*.xml"):
    print(xmlPath)
    dom = xml.dom.minidom.parse(xmlPath)
    root = dom.documentElement
    itemList = root.getElementsByTagName('data')
    ## 内参
    data = itemList[0].firstChild.data
    print(data)

代码会循环读取项目根目录下/asset/xml文件夹里面所有的类型为xml的文件。
这样可以依据getElementsByTagName得到整个xml中标签为data的值,但是这样读出来的对象都是str类型的,遇到读opencv矩阵就很麻烦,所以可以用opencv来读
xml中矩阵如下

<mat type_id="opencv-matrix">
  <rows>3</rows>
  <cols>3</cols>
  <dt>d</dt>
  <data>
    7.6771045506683436e+02 0. 3.0315526341908003e+02 0.
    7.6771045506683436e+02 2.4620553442166459e+02 0. 0. 1.</data></mat>
<distCoeff type_id="opencv-matrix">

2、opencv

for xmlPath in glob.glob("../asset/xml" + "/*.xml"):
    print(xmlPath)
    cv_file = cv2.FileStorage(xmlPath, cv2.FILE_STORAGE_READ)
    matrix = cv_file.getNode("mat").mat()
    print("read matrix\n", matrix)
    cv_file.release()

这样得到的matrix 就是矩阵,就可以用下标来访问了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值