为什么这些属性以相反的顺序写入?

时间:2011-06-03 12:40:57

标签: qt

我正在使用QDomElementQDomDocument将数据导出到XML。当我这样做时,属性以正确的顺序写出:

element.setAttribute("xRepeat", xrepeat);
element.setAttribute("yRepeat", yrepeat);

这会输出类似xRepeat="3" yRepeat="8"的内容。然后我试了这个......

element.setAttribute("xrepeat", xrepeat);
element.setAttribute("yrepeat", yrepeat);

结果输出为yrepeat="8" xrepeat="3"。是否有理由为什么现在以相反的顺序写入属性?我已经在我的IDE(Qt Creator)中执行了通常的clean / qmake / build例程,以确保编译器的“仅重建已更改的内容”功能没有做任何奇怪的事情

2 个答案:

答案 0 :(得分:1)

start-tag或empty-element标记中的属性规范的顺序并不重要。不要依赖需要特定订单的软件。

答案 1 :(得分:0)

Cat Plus Plus是正确的。 QDomElement使用下面的QHash来存储元素属性。 QT Doc声明

  

使用QHash,这些项目是任意的   有序

当您更改密钥时,您也会更改订单。