python解析arxml--Apple的学习笔记

一,目标:

      汽车行业Autosar用developer工具会生成RTE接口,RTE解析中的信息,特别是data element无法导出查看,只能连接dangle打开developer工程才能看。我觉得不方便。

所以靠自己解析arxml则可以随时阅读各种信息。

二,调研:

     我要怎样才能完成我自己目标,自己解析arxml呢?先由简单的xml解析开始,昨天已经自学了python3.7自带的xml包的ET模块,以及lxml这个第三方包(主要是xpath可以直接定位比较好用)

     还了解了xsd是xml的模板框架文件。可以用来验证xml,其实也可以用xsd来生成xml(这个目前对我来说有难度,我的重点还是在解析xml不是生成xml)

     在了解xsd的过程中发现了一个很好的第三方包generateDS。他可以通过xsd来生成xml解析的自动api,然后基于这些api可以做二次开发。

三,立项

    当然我自己尝试了用lxml和xml.etree模块解析xml,都可以用,但是要求对xml结果很熟悉,而且每次若需求不同要求解析的的内容不同,则会带来代码重写,所以不方便。于是我就将方案定为用generateDS产生的api进行二次开发。

    结果我做成功了。并且还能轻松的解析autosar developer中SWC模块的arxml。同时也对xml格式以及如何阅读xml和xsd有了更深入的了解。

四,我的源码

   设计思路是先由一份swc.arxml生成了一份xsd文件,然后由xsd文件通过generateDS生成了api后进行二次开发,生成了port/interface等信息表。然后对PortInterfaces.arxml也进行了解析,为了获取datatype和swc生成的表拼接,否则swc表中是没有data type信息的。

guthub路径:https://github.com/AppleCai/Arxmlgen

效果如下:

五,环境及工具链搭建

5.1 xsd的使用

5.1.1. 需要安装xsd.exe.

5.1.2. 将xml放置在exe的同一目录

5.1.3. 创建一个myOutputDir作为存放生成xsd文件的文件夹

5.1.4.在此路径运行cmd命令,输入如下命令,即可在myOutputDir文件夹下生成对应的xsd文件

   xsd.exe RTE_test_update.xml /outputdir:myOutputDir

5.2 通过xsd生成python api的方法

5.2.1 确保python已经安装了generateDS-2.33.6第三方库

安装方法为普通第三方包的安装方法如下

python setup.py build

python setup.py install

5.2.2 进入此文件夹,并且将xsd文件夹copy入此文件夹。输入如下命令,即可生成自动api

python generateDS.py -o RTE_test_update_api.py RTE_test_update.xsd

5.3 通过python api读取xml信息进行二次开发的方法

主处理函数如下,将silence设置为True。

所有读取的xml信息都在rootObj对象中,可以任何获取,继续进行二次开发。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 8,186评论 1 3
  • 模块和包 一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是...
    go以恒阅读 6,756评论 0 4
  • 下附喷泉巜柿柿红〉原创图片 阅读喷泉《柿柿红》助兴赋 柿子映日红満树,个个体质红彤彤。 加工烘干肉饼鲜,薄...
    苍穹大觉者阅读 3,017评论 0 10
  • 是不是每个城市,都有一条三号线,永远拥挤、永远琢磨不透…… 在重庆,提起三号线,想必每个人都会抱怨一句,三号线真的...
    西瓜霜和葡萄糖阅读 2,744评论 0 0

友情链接更多精彩内容