目标
如果需求并不是使用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库的范例。