使用QT的C 处理DOM处理后的XML属性顺序

Order of XML attributes after DOM processing using c++ with qt

本文关键字:处理 XML 属性 顺序 DOM 使用 QT      更新时间:2023-10-16

我的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>

iam试图在同一文件中读取和写入此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>

这是一个奇怪的问题。任何帮助都将不胜感激。

如果您使用的是qt(qdomDocument,...)的dom-classes,那么您就无法对此做任何事情,因为这会在内部发生(属性存储在一个QHASH)。原因:属性的顺序不会改变XML文件的含义,两个文件包含的信息是相同的。

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