【问题标题】:Ignoring a Invalid XML-Tag using Qdom?使用 Qdom 忽略无效的 XML 标记?
【发布时间】:2012-11-07 07:53:00
【问题描述】:

我尝试解析包含如下属性标签的 XML 文件:

a="(USA & CANADA)"

但我发现它不是格式良好的 XML,因为“&”应该是 URL 编码 (&)

有没有办法告诉 QDom 忽略无效文本来解析文件?因为我不能只修复所有 XML 文件。

我非常感谢任何解决此问题的方法。

编辑:我发现有一个函数 setInvalidDataPolicy(AcceptInvalidChars) 但是在对 QDomDocument 使用 setContent() 时这不起作用,或者我只是以错误的方式使用它......

QDomDocument xmlcontent;
QDomImplementation impl;
impl.setInvalidDataPolicy(QDomImplementation::AcceptInvalidChars);
QFile XMLContentFile(pathString);
xmlcontent.setContent(&XMLContentFile)

有人有什么想法吗?提前致谢!

【问题讨论】:

  • 您不应该使用QDomDocument::implementation() 来实现吗?
  • @DanMilburn 当我尝试将元素添加到我的 QDomDocument 时,setInvalidDataPolicy(..) 有效。但不适用于 setContent 函数。但我仍然搜索以解析我的无效数据....目前我尝试使用 qXmlStreamReader 来完成它

标签: c++ qt xml-parsing


【解决方案1】:

我解决了这个问题。 我现在使用 QXmlStreamReader 解析 XML 文件,当它引发错误时,我启动一个自己的函数来修复 XML 文件。然后重新启动我的解析程序。 这样就可以了,我找不到更好的方法来实现这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    相关资源
    最近更新 更多