方法一:
/* 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();*/