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>