本次xml是来源于FreeCAD,下面代码是在FreeCAD中xml获取方法
with open(r'line.xml','w') as f:
f.write(App.ActiveDocument.Line.Content)
下面是本文的xml
<Properties Count="22">
<Property name="AttacherType" type="App::PropertyString">
<String value="Attacher::AttachEnginePlane"/>
</Property>
<Property name="AttachmentOffset" type="App::PropertyPlacement">
<PropertyPlacement Px="0" Py="0" Pz="0" Q0="0" Q1="0" Q2="0" Q3="1" A="0" Ox="0" Oy="0" Oz="1"/>
</Property>
</Properties>
方法一:使用untangle库
1.首先安装untangle库
pip install untangle
2.导入untangle
import untangle
3.将xml文件转为python对象
obj = untangle.parse('ddd.xml')
4.获取xml最外层的properties
print(obj.Properties)
5.获取properties下面的第一个Property
print(obj.Properties.Property[0])
6.获取properties下面的第一个Property中的name属性
print(obj.Properties.Property[0]['name'])
像这样一级一级的往下去找就好了,另外在FreeCAD中如果对象一样的话,那么导出xml属性和属性的顺序也是一样的,像如果都是线条的话,那么end,和start的位置是始终在列表的第5位和第18位。
方法二:使用xmltodict库,和方法一原理一样,语法稍有不同
参考连接:
https://www.cnblogs.com/lsdb/p/10150492.html