【发布时间】:2016-04-12 14:43:39
【问题描述】:
我目前正在修改一些使用 QDomDocument 解析 XML 文件内容的旧代码。示例代码如下:
QFile file(file_.filePath());
if (file.open(QIODevice::ReadOnly))
{
QTextStream in(&file);
file.close();
QString errorMsg;
int errorLine;
int errorColumn;
if (!doc.setContent(in.readAll(), &errorMsg, &errorLine, &errorColumn))
{
qWarning("Invalid XML in file %s. Error = %s, Line = %d, Column = %d", qPrintable(file_name), qPrintable(errorMsg), errorLine, errorColumn);
}
}
不幸的是,错误报告非常有限。删除文件中途的结束标签只会报告以下错误:
文件 config.xml 中的 XML 无效。错误 = 文件意外结束,行 = 1,列 = 1
这是相当无用的。
关于如何从 Qt 的 XML 解析器中获取更多描述性错误的任何建议?准确的行号将是一个好的开始。
附:我使用的是 Qt 4.7.4 版。
【问题讨论】:
-
QDomDocument是旧的、不受支持的 QtXML 模块的一部分。最好的办法是改用QXMLStreamReader 重写它。