XML文件读写

来源:互联网 发布:手机扫描识字软件 编辑:程序博客网 时间:2024/06/05 13:34

XML文件格式

/*xml文件格式:<Partition_Info>为根节点,part为子节点,Sel、PartitionName...为属性<?xml version="1.0" encoding="GB2312" ?><Partition_Info><Part Sel="1" PartitionName="fastboot" FlashType="nand" FileSystem="none" Start="0" Length="1M" SelectFile="C:\Users\maorui\Desktop\image_mv310_23\fastboot-burn.bin"/><Part Sel="1" PartitionName="bootargs" FlashType="nand" FileSystem="none" Start="1M" Length="512K" SelectFile="C:\Users\maorui\Desktop\image_mv310_23\bootargs_ubi.bin"/><Part Sel="0" PartitionName="bootargsbak" FlashType="nand" FileSystem="none" Start="1536K" Length="512K" SelectFile=""/></Partition_Info> */

XML文件读


    QDomDocument doc;    QString filename_load = QFileDialog::getOpenFileName(this, "加载配置", "/", "xml files(*.xml);");    QFile file(filename_load);    if(!file.open(QIODevice::ReadOnly))    {        return;    }    if(!doc.setContent(&file))    {        file.close();        return;    }    file.close();    QDomElement DocElem = doc.documentElement();    QDomElement node = DocElem.firstChildElement();    while(!node.isNull())    {        QString type = node.attribute("FlashType");//根据属性,读取对应的值        QString system = node.attribute("FileSystem");        QString check = node.attribute("Sel");        reinterpret_cast<QLineEdit*>(ui->tableWidget->cellWidget(num, 5))->setText(node.attribute("Start"));//强制将QWidget表的cellwidget转换成QlineEdit        num++;        node = node.nextSiblingElement();//递归    }}

XML文件写


void MainWindow::on_savecfg_clicked(){    QDomDocument doc;//创建XML文件    QDomProcessingInstruction instruction = doc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\"");doc.appendChild(instruction);QDomElement root = doc.createElement("Partition_Info");//增加根节点doc.appendChild(root);int num = ui->tableWidget->rowCount();for(int i = 0; i<num; i++){    QDomElement part = doc.createElement("Part");    part.setAttribute("Sel",reinterpret_cast<QCheckBox*>(ui->tableWidget->cellWidget(i,0))->isChecked()? 1 : 0);//增加属性,值    root.appendChild(part);//将节点添加到根节点上}QString filename_save = QFileDialog::getSaveFileName(this, "保存配置", "/", "xml files(*.xml)");QFile file(filename_save);QTextStream out(&file);//将xml文件内容写到文件file上out.setCodec("UTF-8");doc.save(out,4,QDomNode::EncodingFromTextStream);//将xml文件内容写到文件file上return;

}

0 0
原创粉丝点击