Qt5.5 XML 处理使用 QDom

Posted

技术标签:

【中文标题】Qt5.5 XML 处理使用 QDom【英文标题】:Qt5.5 XML processing using QDom 【发布时间】:2016-04-14 13:29:09 【问题描述】:

我正在使用 QDom 类来处理 XML 文件,我希望按照它们在 XML 文件中定义的顺序来处理属性,这很重要。但是,“QDomNamedNodeMap”中的属性顺序似乎不同。

有什么方法可以确保订单与 XML 文件中定义的一致?

【问题讨论】:

【参考方案1】:

据我所知,您不能根据规范依赖 XML 中的属性顺序。这可能是您的图书馆以与文字顺序不同的顺序阅读它们的原因。即使您找到了一种方法,您也不应该相信它:如果其他人生成 XML 来提供您的程序会怎样?有关规格的更多信息,请参阅here。 也许设计上的改变可以帮助你:嵌套一些节点怎么样?嵌套节点的顺序是确定性的。

【讨论】:

我很快想到我必须编写自己的处理程序。 我编写的 XML 允许属性使用对其他属性的宏引用,这说明了为什么顺序很重要,但是作者可以按照他们希望的任何方式编写 XML,只要一个引用另一个被实现的引用不在另一个之前。 @SPlatten 最好不要:如果其他人为您生成 xml,您也会遇到麻烦(他可以以不同的顺序生成属性) 如果另一个人正在编写 XML,那么他们将根据我对应用程序处理它的规范这样做。 我想要的是按照它们在文件中出现的顺序读取属性。【参考方案2】:

我已经编写了自己的类来读取文件并处理节点和属性,根据我的要求,属性按照它们在文件中出现的顺序保持不变。

【讨论】:

以上是关于Qt5.5 XML 处理使用 QDom的主要内容,如果未能解决你的问题,请参考以下文章

pyqt5-tools安装失败处理方法

Qt 5.5 绘制指针

Qt Socket 收发图片——图像拆包组包粘包处理

在 QString 中获取 QDomElement 值时出错

Qt5.5 脚本

编译 Qt-base: error: libQt5Core.so.5: no version information available