学习处理Doxygen的xml输出

发布于:2023-01-04 ⋅ 阅读:(451) ⋅ 点赞:(0)

目标

如果需求并不是使用Doxygen生成代码的文档,而是使用Doxygen对代码的内容进行分析,之后输出自定义的内容,那么就需要输出成xml格式了。

本篇的目标是:尝试使用Doxygen输出xml结果,并尝试使用Doxygen提供的库(doxmlparser)来处理结果。

生成XML结果

选择使用Doxywizard这个图形界面来生成(基础内容可参见之前的博客

测试的文件选择 HAPI.h ,我将其放到目录 D:\Test\Test0831Proj 中作为测试目录。

然后打开 Doxywizard ,指定好测试目录后,勾选XML格式的输出:
在这里插入图片描述
之后点击输出按钮,就可以看到xml的输出了:
在这里插入图片描述
其中的 index.xml 是目录,其中有很多compound节点,每个都对应一个xml文件:
在这里插入图片描述
点开一个group_XXX.xml,可以看到其中记录了函数,包括函数的参数等信息,都被记录到了节点中:
在这里插入图片描述
其实这样结构化的信息,已经可以对其进行自定义的解析并输出自定义的结果了。不过Doxygen官方也提供了一个库可以更方便地对其解析,下面尝试下。

尝试使用doxmlparser

doxmlparser是一个python包,可以在官方GIT仓库中找到,地址是:
https://github.com/doxygen/doxygen/tree/master/addon/doxmlparser/doxmlparser

metrics.py是里面一个范例,可以输出各种元素的数目,这里将尝试运行它。

运行时,将 metrics.py 和 doxmlparser包 放在一个目录:
在这里插入图片描述
然后调用命令,格式为

【python.exe位置】 【metrics.py位置】 【Doxygen的xml输出文件夹位置】

比如,在我这里是:

C:\Users\admin\AppData\Local\Programs\Python\Python38\python.exe D:\Test\Test0831\metrics.py D:\Test\Test0831Proj\xml

将会看到
在这里插入图片描述
即输出的数据为:

Files:                1 (0 documented)
Groups:              24
Pages:                1
Functions:          282 (282 documented)
Params:            3310

接下来,就可以研究doxmlparser库中的各种函数了,而上面metrics.py是一个基础的调用doxmlparser库的范例。


网站公告

今日签到

点亮在社区的每一天
去签到