3

很长一段时间以来,我一直在使用 Doxygen 自动化我的 C 代码,并且发现 HTML 输出非常适合理解代码。但是,我有一个新要求,即生成包含相同信息但格式要求非常特殊的 Word .docx 文件。

使用 python-docx 包,编写一个 .docx 文件并配置样式以符合我的要求非常简单,使用 LXML 解析 Doxygen 的 XML 输出。然而,对于更复杂的字段(例如文件和函数的详细描述),有相当复杂的文档样式的 XML 标记。

我的理解是,可以任意嵌套<para>、和其他标签<itemizedlist><xrefsect>并在同一级别尾随它们的独立文本“尾巴”。我将嵌套 XML 转换为平面 .docx 段落和项目符号列表的方法是使用状态机,但这似乎很脆弱,因为可能存在任意数量的嵌套级别。

我目前的策略是要点在这里。我想知道是否有一种更通用的方式来理解具有复杂嵌套的文档。有没有比我的状态机更脆弱的策略?我不确定我是否要重新发明轮子,但是我添加到状态机的案例越多,它就越不像一个强大的解决方案。

4

0 回答 0