Qt5 使用QDomDocument修改标签的属性值,保存的时候为什么xml文件里面属性值发生了位置变化,看下图

小卒曹阿瞒 2017-08-30 12:37:31
前面的字段我没有修改,直接从setconfig开始的,只修改了DG标签的那个value值,但是为什么前面标签的属性发生了位置变化
<ScanSizeType>
<Elem name="ddd" id="0x0000"/>
<Elem name="sdddd" id="0x0001"/>
</ScanSizeType>
<SetConfig>
<DG value="44455"/>
<SaveImageType value="5555"/>
</SetConfig>
这是没修改的,下面是修改DG属性值后的
<ScanSizeType>
<Elem id="0x0000" name="ddd"/>
<Elem id="0x0001" name="sdddd"/>
</ScanSizeType>
<SetConfig>
<DG value="55"/>
<SaveImageType value="5555"/>
</SetConfig>
scansizetype里面的标签的属性换了位置。下面是我修改属性的代码
if(domElem_SetConfig.tagName() == "DG")
{
domElem_SetConfig.setAttribute("value",55);
}
不知道为什么要加上下面这个xml才会有变化,有人知道吗?但是没有修改的标签的属性位置发生了变化。
if(!file.open(QIODevice::WriteOnly))
{
file.close();
return ;
}
QTextStream out(&file);
dom.save(out,4);
file.close();
有大神知道怎么回事吗?或者有什么好的修改属性值的办法,不想重新整个xml文件。积分不多,很想问个问题
...全文
718 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
donwmufromdying 2017-09-05
  • 打赏
  • 举报
回复
看源码发现内部实现是用的QHash,所以应该是key的字母排序了
小卒曹阿瞒 2017-09-05
  • 打赏
  • 举报
回复
哈希会排序吗?是不是每次哈希算法key的下标不一样,所以每次保存位置都不变
小卒曹阿瞒 2017-08-30
  • 打赏
  • 举报
回复
虽然功能不影响,但是想知道为什么

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧