我目前正在为 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?