用dom操作xml后多了 ,还将attribute位置给移动了。

蜡笔小新啦 蜡笔小新啦 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

bool MainWindow::WriteModifyToXml(QStringList &modifyList,QStringList &modifyUserList,QList<bool> &ModifyValueList)
{

QStringList list11(modifyList);
QStringList list2(modifyUserList);

QFile file(UserAdminSettingFilePath);
QDomDocument doc;
QString errStr;int errLine;int errColumn;
doc.setContent(&file,false,&errStr,&errLine,&errColumn);

if ( file.isOpen())
file.close();

QDomElement root = doc.documentElement();
QDomElement child = root.firstChildElement();
QString modifyStr,name;QStringList modifyRowList;
if ( ModifyValueList.contains(false))
{
while(!child.isNull())
{
if ( child.tagName() == "cam")
{
child = child.firstChildElement();break;
}
child = child.nextSiblingElement();
}

for(int j=0;j<modifyRowList.count();j++)
{
QString str1 = modifyRowList[j];
QString str2 = UserAdminHeaderList[j];
}

while(!child.isNull())
{
if ( child.tagName() == "engineer" )
{
name = child.attribute("user","#none#");
int indexList = modifyUserList.indexOf(name);
if ( indexList != -1 )
{
modifyStr = modifyList.at(indexList);
modifyRowList = modifyStr.split("#");
for(int j=0;j<modifyRowList.count();j++)
{
QString str1 = UserAdminHeaderList[j];
QString str2 = modifyRowList[j];
child.setAttribute(str1,str2);
}
}
}

child = child.nextSiblingElement();
}
}


QFile f(UserAdminSettingFilePath);
if (! f.open(QFile::WriteOnly | QFile::Text))
{
QMessageBox::critical(this,tr("Failed"),tr("save failed!Please call Ken!"));
return false;
}

QTextStream textStream(&f);
doc.save(textStream,0);
f.close();
return true;
}


-------------------------------
<?xml version='1.0' encoding='utf-8'?>
<class>
<information>
aaa
</information>
<Type qa_first_step="yes;no" second_step="yes;no" qa_second_step="yes;no" input="yes;no" qa_input="yes;no" job="Fresh_man;Operator;Assistant_Captain;Captain;Assistant_Supervisor;Supervisor" first_step="yes;no" shift="day;middle;night" sys_admin="yes;no" team="cam;qa" />
<cam>
<engineer user="ken" sys_admin="yes" shift="night" team="cam" chinese_name="abc" passwd="aGVsbG9rZW4=" qa_first_step="yes" second_step="yes" />
<engineer user="aken" sys_admin="yes" shift="day" team="cam" chinese_name="addd" passwd="YWtlbg==" qa_first_step="yes" second_step="yes" />
<engineer user="cken" sys_admin="yes" shift="day" team="cam" chinese_name="ddfdfd" passwd="Y2tlbg==" qa_first_step="yes" second_step="yes"/>
<engineer user="dken" sys_admin="yes" shift="day" team="cam" chinese_name="vvvv" passwd="ZGtlbg==" qa_first_step="yes" second_step="yes" />
</cam>
</class>

---------------------- 改成了 多了 还将user等attribute移动到second_step属性后面了
<?xml version='1.0' encoding='utf-8'?>
<class>
<information>
aaa;
</information>
<Type qa_first_step="yes;no" second_step="yes;no" qa_second_step="yes;no" input="yes;no" qa_input="yes;no" job="Fresh_man;Operator;Assistant_Captain;Captain;Assistant_Supervisor;Supervisor" first_step="yes;no" shift="day;middle;night" sys_admin="yes;no" team="cam;qa" />
<cam>
<engineer passwd="aGVsbG9rZW4=" qa_first_step="yes" second_step="yes" user="ken" sys_admin="yes" shift="night" team="cam" chinese_name="abc" />
<engineer passwd="YWtlbg==" qa_first_step="yes" second_step="yes" user="aken" sys_admin="yes" shift="day" team="cam" chinese_name="addd" />
<engineer passwd="Y2tlbg==" qa_first_step="yes" second_step="yes" user="cken" sys_admin="yes" shift="day" team="cam" chinese_name="ddfdfd" />
<engineer passwd="ZGtlbg==" qa_first_step="yes" second_step="yes" user="dken" sys_admin="yes" shift="day" team="cam" chinese_name="vvvv" />
</cam>
</class>







...全文

相关推荐

java dom 操作xml

java DOM 对xml文件的操作【分别对节点、节点属性、节点内容增删改查】

yezis

大厂Python自动化测试面试题合集

题目:函数的作用是什么?调用函数的语法?答案:将独立功能代码封装成模块,复用代码;函数名(实参)。题目:函数 return 作用是什么?无 return 时函数返回什么?多返回值底层是什么类型?答案:返回函数执行结果;无 return 默认返回 None;return x,y,z 底层自动封装为元组。题目:函数四大参数类型分别是什么?定义顺序要求?答案:必选参数、默认参数、可变位置 * args、命名关键字、可变关键字 **kwargs;顺序:必选→默认→*args→命名关键字→**kwargs。

wespten

【信息科学与工程学】计算机科学与自动化——第二百二十九篇 企业级软件开发所涉及的关键因素1005

编号类型模块组件编程语言+环境编程设计考虑的因素(含缺陷规避、高内聚、低耦合、高性能、安全性、低BUG、高并发、高可靠、组件调用优化、信号量处理、PV操作、文件操作、文件系统、对象处理、缓冲、队列、缓存、数据脱敏、其他各类因素)关联知识和标准3018企业通用微服务网关(API Gateway, Routing / Rate Limiting / Auth / Circuit Breaker / Aggregation / Transformation / Logging / Monitoring / Ser

flyair_China

DOM操作XML文档

学习XML语言很重要的一章节,其中的第八章节,掌握如何用DOM操作XML文档

COe懂

vc DOM操作xml,从Tree到Xml,xml到Tree

树形控件的每个节点映射到XML,双击树节点显示其值或属性值,增加、删除、修改树节点的同时修改xml中相对应节点!其中的大部分算法都采用递归,希望对你有所帮助!

cc之家
评论 1
收藏 已收藏
分享
返回顶部
蜡笔小新啦
Qt 21,503 成员 26,693 内容