xml - 更正 Doxygen XML 输出中的错误

标签 xml qt doxygen

我目前正在为 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&amp;</name></member>
...
</listofallmembers>

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

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

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

我知道这些字符必须替换为它们的 &lt; , &gt;等同行。

当我什至无法使用 Qt 类查看 XML 时,我如何轻松(当然是自动)更正 XML?

最佳答案

一种可能性是解决错误并在错误出现时手动修复它们,遍历 XML 直到它的格式正确。看到这个 Stackoverflow 问题: Ignoring a Invalid XML-Tag using Qdom?

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

关于xml - 更正 Doxygen XML 输出中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13875770/

相关文章:

c# - 如何在文档内的 XML 中添加一个命名空间和另一个带有前缀的命名空间

python - 使用pyspark从本地系统读取文件时获取文件名

java - 如何配置 Doxygen 只为一个文件生成文档?

Doxygen:如何链接到 Doxygen 生成的 HTML 文件的用户定义 anchor ?

c++ - 在 doxygen 中更改文档代码的版本(不使用宏)

java - 从数据库设计决策中导出 XML、JSON

java - 使用 XML API (STaX/DOM/..) 编写样式表标签

c++ - 将 PicklingTools 与 QT Creator 一起使用

c++ - Qt 项目结构 - 需要建议

c++ - 属性的 QVariant(QString, “” ) 在属性系统中是什么意思?