我发了一个 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/