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的主要内容,如果未能解决你的问题,请参考以下文章
在 QString 中获取 QDomElement 值时出错
编译 Qt-base: error: libQt5Core.so.5: no version information available