我目前正在为 doxygen XML 输出编写解析器。部分原因是学术原因,因为 doxygen/addons/doxmlparser 的代码很古老。
我正在使用 QXmlStreamReader 来解析 XML,它在某些属性中引发了错误。例如,以下 XML 是由 doxygen 生成的:
...
<listofallmembers>
...
<member refid="qset_1operator&" prot="public" virt="non-virtual"><scope>libDatabase::Set</scope><name>operator&</name></member>
...
</listofallmembers>
这refid="qset_1operator&"
当然是个问题:
XmlStreamReaderError: Expected '#' or '[a-zA-Z]', but got '"'.
其他错误包括 <>
XML 属性中的字符(和其他)。
我知道这些字符必须替换为它们的 <
, >
等同行。
当我什至无法使用 Qt 类查看 XML 时,我如何轻松(当然是自动)更正 XML?
最佳答案
一种可能性是解决错误并在错误出现时手动修复它们,遍历 XML 直到它的格式正确。看到这个 Stackoverflow 问题: Ignoring a Invalid XML-Tag using Qdom?
您还可以使用 tidy library在处理之前修复输入。
关于xml - 更正 Doxygen XML 输出中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13875770/