使用带有qt的c ++进行DOM处理后的XML属性顺序

时间:2016-06-20 07:22:44

标签: c++ xml qt

我的xml文件包含:

<studentform>
<student Studentname=" " Address=" " SSC_marks=" " Inter_marks=" " Btech_marks=" " Mailid=" "/>
<student Studentname=" " Address=" " SSC_marks=" " Inter_marks=" " Btech_marks=" " Mailid=" "/>
<student Studentname=" " Address=" " SSC_marks=" " Inter_marks=" " Btech_marks=" " Mailid=" "/>
</studentform>

我试图在同一个文件中读取和写入这个xml文件,但在输出中,属性位置像这样被洗牌

<studentform>
<student Mailid=" " SSC_marks=" " Btech_marks=" " Studentname=" " Address=" " Inter_marks=" "/>
 <student Mailid=" " SSC_marks=" " Btech_marks=" " Studentname=" " Address=" " Inter_marks=" "/>
<student Mailid=" " SSC_marks=" " Btech_marks=" " Studentname=" " Address=" " Inter_marks=" "/>
</studentform>

这是一个奇怪的问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果你正在使用Qt的DOM类(QDomDocument,...),那么你就无法做任何事情,因为这在内部发生(属性存储在QHash中)。原因是:属性的顺序不会改变XML文件的含义,两个文件包含的信息是相同的。

如果您需要使用正确的属性,请考虑使用QXmlStreamWriter - 此类将按您传递的顺序编写属性 - 因为它是基于流的编写器。但是,您必须使用自己的数据结构读取和写入数据。