从doxygenxml输出中提取函数调用列表

从doxygenxml输出中提取函数调用列表,doxygen,Doxygen,我在DOxygen论坛上发布了一篇文章,也在这里发布,以获得更好的回复 我有一个中等规模的C项目,大约有2900个功能。我使用的是DOxygen 1.5.9,它成功地生成了函数的调用图。有没有办法提取出来作进一步分析?简单的配对列表就足够了,例如 Caller,Callee FunctionX, FunctionY ... 我对XSLT很熟悉,但我必须说doxygenXML输出是复杂的。以前有没有人做过这件事,并且可以提供一些关于如何解析XML文件的指导 提前谢谢 根据我在创建的人工示例中看到

我在DOxygen论坛上发布了一篇文章,也在这里发布,以获得更好的回复

我有一个中等规模的C项目,大约有2900个功能。我使用的是DOxygen 1.5.9,它成功地生成了函数的调用图。有没有办法提取出来作进一步分析?简单的配对列表就足够了,例如

Caller,Callee
FunctionX, FunctionY
...
我对XSLT很熟悉,但我必须说doxygenXML输出是复杂的。以前有没有人做过这件事,并且可以提供一些关于如何解析XML文件的指导


提前谢谢

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

  • 如果我的正则表达式foo是正确的,则解析名称类似于
    ^(.+)\d+(c | cpp | h | hpp)\.xml$
    的文件
  • 查找所有
    。它具有唯一的
    id
    属性。我相信这方面的XPath是
    //memberdef[@kind='function']
  • 在该元素中,查找所有
  • 对于这些标记中的每个标记,
    refid
    属性唯一地引用被调用的相应
    id
    属性
  • 每个
    中的文本节点对应于被调用的相应

这似乎是一种表达调用图的好方法。使用XSLT或任何其他sane XML解析套件来获得所需结果应该不会有问题。

您想专门使用XSLT,还是为C或C#等其他语言编写代码?此外,如果您想得到更准确的建议,您应该在这里发布一个Doxygen XML输出的示例;我可以用点别的。问题并不在于如何解析XML——我知道如何解析XML。更基本的是——DOxygen如何组织(许多)XML输出文件,以及如何从这些文件建立调用方-被调用方关系。