#include #include #include "domdocument.h" DomDocument::DomDocument(QString fileName) { m_fileName = fileName; } DomDocument::~DomDocument() { } int DomDocument::writeXml() { QFile file(m_fileName); if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) return -2; QTextStream out(&file); QDomDocument doc; QDomText text; QDomElement element; QDomAttr attr; QDomProcessingInstruction instruction; instruction = doc.createProcessingInstruction( "xml", "version = \'1.0\' encoding=\'UTF-8\'" ); doc.appendChild( instruction ); QDomElement root = doc.createElement( "COMMAND" ); doc.appendChild(root); element = doc.createElement( "OBJECT" ); text = doc.createTextNode( "USER" ); element.appendChild(text); root.appendChild(element); element = doc.createElement( "ACTION" ); text = doc.createTextNode( "LOGIN" ); element.appendChild(text); root.appendChild(element); element = doc.createElement( "DATA" ); root.appendChild(element); QDomElement userElement = doc.createElement( "USERINFO" ); attr = doc.createAttribute( "NAME" ); attr.setValue("root"); userElement.setAttributeNode(attr); attr = doc.createAttribute( "PASSWORD" ); attr.setValue("123456"); userElement.setAttributeNode(attr); element.appendChild(userElement); doc.save(out, 4); //each line space of file is 4 return 0; } int DomDocument::readXml() { QDomDocument doc; QFile file(m_fileName); QString error = ""; int row = 0, column = 0; if (!file.open(QIODevice::ReadOnly)) return -2; if(!doc.setContent(&file, false, &error, &row, &column)){ // qDebug() << "parse file failed:" << row << "---" << column <<":" <