纠正Doxygen XML输出中的错误

时间:2012-12-14 09:21:20

标签: xml qt doxygen

我目前正在为doxygen XML输出编写解析器。部分原因是出于学术原因,因为doxygen / addons / doxmlparser的代码很古老。

我使用QXmlStreamReader来解析XML,并在某些属性中引发错误。例如,doxygen生成以下XML:

...
<listofallmembers>
...
<member refid="qset_1operator&" prot="public" virt="non-virtual"><scope>libDatabase::Set</scope><name>operator&amp;</name></member>
...
</listofallmembers>

refid="qset_1operator&"当然是一个问题:

XmlStreamReaderError: Expected '#' or '[a-zA-Z]', but got '"'.

其他错误包括在XML属性中包含<>个字符(和其他字符)。

我知道这些字符必须由他们的&lt;&gt;等对象替换。

当我不能使用Qt的类甚至查看XML时,我如何轻松(并自动地)更正XML?

1 个答案:

答案 0 :(得分:2)

一种可能性是解决错误并在它们出现时手动修复它们,迭代XML直到它格式正确。请参阅此Stackoverflow问题: Ignoring a Invalid XML-Tag using Qdom?

您还可以在处理之前使用tidy library修复输入。