目标

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

学习处理Doxygen的xml输出相关推荐

  1. java对象转xml 高性能_通过实例学习JAVA对象转成XML输出

    一.总体说明 XML和JSON 是最为常用的数据交换格式 本例子演示如何将java对象,转成XML输出. 二.流程 1.在上文的例子中,创建一个包"com.waylau.rest.bean& ...

  2. Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)

    Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...

  3. EBS 报表开发:标准报表Text输出改为XML输出

    很多EBS的标准报表,特别是EBS R11都只有text格式输出,输出结果不好整理数据,需修改为Excel格式输出. 下面介绍两种类型(Oracle Report, Spawned)的报表如何修改. ...

  4. XGBoost学习(六):输出特征重要性以及筛选特征

    XGBoost学习(一):原理 XGBoost学习(二):安装及介绍 XGBoost学习(三):模型详解 XGBoost学习(四):实战 XGBoost学习(五):参数调优 XGBoost学习(六): ...

  5. Oralce EBS R12 xml输出二维码

    Oralce EBS R12 xml输出二维码 文章目录 Oralce EBS R12 xml输出二维码 一.引入QRCode.jar 二.JSP程序代码 三.程序部署 四.修改RTF模板 五.总结 ...

  6. %3c xml 和php冲突,[原创]WEB安全第五章 漏洞学习与利用11 xml实体注入

    WEB安全第五章 漏洞学习与利用11 xml实体注入 XXE Injection即XML External Entity Injection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数 ...

  7. QT学习:使用JSON/XML等非ts文件实现多语言国际化

    注意:如果不是CSDN网站显示本篇文章,请于底部点击"阅读原文"来阅读本篇文章! QT学习:使用JSON/XML等非ts文件实现多语言国际化 解析Json 重载translate ...

  8. Java数据持久层框架 MyBatis之API学习六(Mapper XML 文件详解)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  9. Gin 框架学习笔记(03)— 输出响应与渲染

    在 Gin 框架中,对 HTTP 请求可以很方便有多种不同形式的响应.比如响应为 JSON . XML 或者是 HTML 等. ​ Context 的以下方法在 Gin 框架中把内容序列化为不同类型写 ...

最新文章

  1. android源码下载方法 批量下载 基于windows os
  2. web笔记Error:That IP address
  3. 为终端服务连接配置网络级身份验证
  4. 语言结构体在内存的分布_结构体内存对齐,这篇文章给你彻底搞会!(干货收藏)...
  5. 关于cocopod命令
  6. NoSQL数据库Redis使用命令简介
  7. div html 下边加横线_css怎么添加下划线?
  8. 查找有序数组中某个数首次出现的位置
  9. Vivado 2019.1 使用教程
  10. java 获取各省市的区号_城市查区号示例代码
  11. Quartz 表达式的学习
  12. VO快速搜索 宝马VO 宝马VO翻译 VO码查询工具
  13. Win10删除Xbox
  14. 数据结构与算法--哈夫曼树应用
  15. 06: 综合布线 、 子网划分
  16. 理解英飞凌MOSFET器件的数据手册
  17. 【SRE笔记 2022.8.16 Linux命令基础01】
  18. AFNetworking用法
  19. android手机获取cpu信息
  20. PHPnow搭建指南

热门文章

  1. 这样学习C语言最有效
  2. SAP之VM创建SUSE虚拟机
  3. 创建,删除快捷图标shortcut android
  4. Django商城前台项目
  5. 【转】注册WebStorm
  6. 给计算机老师的祝福,老师祝福语_给老师新年祝福语-太平洋电脑网
  7. oracle 最小权限,基础知识6——安全和最小权限原则
  8. 【期末复习资料】物联网信息安全
  9. 浅拷贝、深拷贝、浅赋值、深赋值
  10. python支持double_python转换为double