doxygen - 从 DOxygen XML 输出中提取函数调用列表

标签 doxygen

我发了一个 question在 Doxygen 论坛上,也将其张贴在这里以获得更好的回应。

我有一个中等大小的 C 项目,大约有 2,900 个函数。我正在使用 DOxygen 1.5.9,它成功地为函数生成了一个调用图。有没有办法将其提取出来以供进一步分析?一个简单的配对列表就足够了,例如

Caller,Callee
FunctionX, FunctionY
...

我对 XSLT 很满意,但我必须说 DOxygen XML 输出很复杂。有没有人以前这样做过并且可以提供一些关于如何解析 XML 文件的指导?

提前致谢!

最佳答案

根据我在我创建的人为示例中看到的内容,

  • 解析名称类似于 ^_(.+)\d+(c|cpp|h|hpp)\.xml$ 的文件, 如果我的 regex-foo 是正确的。
  • 查找所有 <memberdef kind="function"> .它有一个独特的id属性。我相信 XPath 是 //memberdef[@kind='function'] .
  • 在该元素中,找到所有 <references> .
  • 对于每个标签,refid属性唯一地指的是 id对应 <memberdef> 的属性正在被调用。
  • 每个 <references> 内的文本节点对应于 <name>对应的 <memberdef>正在被调用。

  • 这似乎是表达调用图的一种不错的、直接的方式。使用 XSLT 或任何其他正常的 XML 解析套件来获得所需的结果应该没有问题。

    关于doxygen - 从 DOxygen XML 输出中提取函数调用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3842880/

    相关文章:

    c++ - 如何在 Resharper 中更改 doxygen 格式化样式?

    sdk - 将 Doxygen 用于商业闭源产品

    doxygen - 我可以编写类似于 @code 或 @verbatim 的 doxygen 别名吗?

    latex - 在 Doxygen 中调试 Latex 错误的技巧

    character-encoding - Doxygen、doxywizard 编码问题

    c - 有没有评论功能在Doxygen中的实现

    c++ - 如何设置 clang-format 注释 pragmas 以便多行 doxygen 注释不会被触及?

    c++ - doxygen 中引用运算符的问题

    c++ - Doxygen 提示采用相同模板但具有不同模板参数的重载函数

    c - 如何检查 doxygen\return 语句的正确性?