【发布时间】:2012-12-02 06:47:15
【问题描述】:
我目前正在为 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 属性中包含 <> 字符(和其他字符)。
我知道这些字符必须替换为 &lt;、&gt; 等对应的字符。
当我无法使用 Qt 的类甚至查看 XML 时,我将如何轻松(当然是自动)更正 XML?
【问题讨论】: