QT 读写Xml文件

  • Post author:
  • Post category:其他


方法一:

/* QDomNodeList nodeList = root.childNodes();

int nSize = nodeList.size();

for(int i=0;i<nSize;i++)

{


QString rmpName = nodeList.at(i).toElement().tagName();

if (rmpName.compare(“Communication”)==0)

{


root.removeChild(nodeList.at(i));

i–;

}

if (rmpName.compare(“IED”)==0)

{


QDomNodeList iedList = nodeList.at(i).childNodes();

int iedsize = iedList.size();

for(int j=0;j<=iedsize;j++)

{


QString iedName = iedList.at(j).toElement().tagName();

QDomElement node = iedList.at(j).firstChild().toElement();

QString nodeName = node.toElement().tagName();

if (nodeName.compare(“LN”)==0)

{


QString attname = node.attribute(“lnType”);

if (attname.compare(“IHMI”)==0)

{


root.removeChild(nodeList.at(i));

}

else

tf = false;

}

}

}

}

QTextStream out(&tarFile);

QTextCodec * codec = QTextCodec::codecForName(“GBK”);

out.setCodec(codec);

doc.save(out, 3);

file.close();

tarFile.close();*/

———————————————-方法二QXmlStreamReader和QXmlStreamWriter的方法————————————————————————

QXmlStreamReader reader(&file);//一种方法进行xml文件的转存

QXmlStreamWriter writer(&tarFile);

writer.setAutoFormatting(true);

while (!reader.atEnd())

{


reader.readNext();

QString strToken = reader.tokenString();

QXmlStreamReader::TokenType tokenType = reader.tokenType();

if(reader.isStartDocument()==1)

{

writer.writeStartDocument(reader.text().toString());

}

if(reader.isStartElement()==1)

{


QXmlStreamAttributes attr = reader.attributes();

QString nodeName = reader.name().toString();

writer.writeStartElement(reader.name().toString());

if(attr.size()>0)

{


writer.writeAttributes(attr);

}

}

if(reader.isCharacters()==1)

{


writer.writeCharacters(reader.text().toString());

}

if(reader.isEndElement()==1)

{


writer.writeEndElement();

}

}

writer.writeEndDocument();

deletNode();*/



版权声明:本文为ma_lili8023126原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。