读取带命名空间的arxml,最好的方式是创建一个字典来存放你自己的前缀并在搜索函数中使用它们:
ARRoot
U8
VALUE
/ARRoot/uint8
false
uint8
FIXED_LENGTH
8
NONE
import xml.etree.ElementTree as ETns = {'real_person': 'http://people.example.com','role': 'http://characters.example.com'}tree = ET.parse('ns.xml')
root = tree.getroot()for actor in root.findall('real_person:actor', ns):name = actor.find('real_person:name', ns)print(name.text)for char in actor.findall('role:character', ns):print(' |-->', char.text)
读取带命名空间的arxml文件
import xml.etree.ElementTree as ET
arxml_namespace= {
'arxmlns' : "http://autosar.org/schema/r4.0",
'xmlns:xsi' : 'http://www.w3.org/2001/XMLSchema-instance',
'xsi:chemaLocation' : "http://autosar.org/schema/r4.0 AUTOSAR_4-0-0.xsd"}tree = ET.parse('ns_test.arxml')
root = tree.getroot()
for actor in root.findall(".//arxmlns:PORTS/arxmlns:R-PORT-PROTOTYPE", arxml_namespace):name = actor.find('./arxmlns:SHORT-NAME', arxml_namespace)print(name.text)
读取结果:
