xml.etree.ElementTree解析arxml文件时必要操作

10 篇文章 1 订阅

xml.etree.ElementTree解析arxml文件时必要操作


注意下面
如果有车载讨论需要的小伙伴,可以私信加我微信,拉你进群,和同行业大佬交流
注意上面

前言

周末在准备尝试使用ElementTree对autosar的描述文件arxml进行解析获取,但是解析过程中一直有问题无法获取到对应的节点信息,最终翻墙查询到相关处理方法,今天写下这篇文章记录并分享下


一、使用Element.iter()查询解析失败

之前通过查找xml的Element.iter()方法,得到可以通过这个函数方法查找到所有子节点相关的信息,但是使用后一直无法获取到相关节点信息,怀疑是用法有问题,或者少了啥信息。最后经过科学上网在墙外找到了原因,需要拿到下图中的信息
在这里插入图片描述

二、具体代码

代码如下(示例):

import xml.etree.ElementTree as ET


tree = ET.parse(r"C:\Users\Administrator\Desktop\xxx.arxml")
root = tree.getroot()

for node in root.iter('{http://autosar.org/schema/r4.0}SHORT-NAME'): #{http://autosar.org/schema/r4.0} + 节点名(SHORT-NAME)
    print(node.text)
for node in root.findall('{http://autosar.org/schema/r4.0}SHORT-NAME'):	# 全局搜索时也需要带上这个
	print(node.text)

总结

通过这种方法就能拿到我们想要拿到的Element的对象节点,执行相关操作了

写在结尾

我是一名车载集成测试开发工程师,希望能和志同道合的朋友一起相互学习进步

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用`xml.etree.ElementTree`模块来修改ARXML文件。该模块提供了一组用于创建、修改和解析XML文档的函数和类。 首先,你需要使用`xml.etree.ElementTree.parse()`函数加载ARXML文件并将其解析为一个ElementTree对象。例如,假设你的ARXML文件名为"example.arxml",可以使用以下代码来加载它: ```python import xml.etree.ElementTree as ET tree = ET.parse("example.arxml") ``` 接下来,你可以通过访问ElementTree对象的根元素来获取ARXML文件的根节点。例如,假设根节点的标签名为"RootNode",你可以使用以下代码获取它: ```python root = tree.getroot() ``` 然后,你可以使用ElementTree对象提供的各种方法来修改和操作ARXML文件。例如,你可以使用`root.findall()`方法来查找具有特定标签名的元素,并使用`element.text`属性来获取或设置元素的文本内容。 ```python # 查找所有具有 "TagName" 标签的元素 elements = root.findall(".//TagName") # 遍历找到的元素并修改其文本内容 for element in elements: element.text = "New Text" ``` 最后,你可以使用`tree.write()`函数将修改后的ElementTree对象写回到ARXML文件中。 ```python tree.write("example_modified.arxml") ``` 以上是使用`xml.etree.ElementTree`模块来修改ARXML文件的基本方法。你可以根据具体的需求进行更复杂的操作,例如添加新元素、删除元素、修改元素属性等。详细的用法和示例可以参考Python官方文档中关于`xml.etree.ElementTree`模块的说明。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值