1、新建一个qt的工程,并且工程中的pro文件中,需要加入:
QT += xml
2、下面是写入xml的函数
//写入操作
int DomDocument::writeXml()
{
QFile file(fileName);//打开或创建文件
//我们在这里使用了QFile::WriteOnly | QIODevice::Truncate,
//也就是以只写并且覆盖已有内容的形式操作文件。注意,QIODevice::Truncate会直接将文件内容清空
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
return -2;
QTextStream out(&file);
QDomDocument doc;
QDomText text;
QDomElement element;
QDomAttr attr;
QDomProcessingInstruction instruction;//写入xml的头部,添加处理命令
instruction = doc.createProcessingInstruction( "xml", "version = \'1.0\' encoding=\'UTF-8\'" );//设置xml的版本号和字节的格式
doc.appendChild( instruction );//添加介绍
QDomElement root = doc.createElement( "COMMAND" );//设置根节点为COMMAND
doc.appendChild(root);
element = doc.createElement( "OBJECT" );//添加根节点下面的元素OBJECT
text = doc.createTextNode( "USER" );//元素OBJECT里面的文本USER
element.appendChild(text);
root.appendChild(element);
element = doc.createElement( "ACTION" );//添加元素ACTION
text = doc.createTextNode( "LOGIN" );//添加元素ACTION的文本LOGIN
element.appendChild(text);
root.appendChild(element);
element = doc.createElement( "statr" );//添加元素ACTION
text = doc.createTextNode( "school" );//添加元素ACTION的文本LOGIN
element.appendChild(text);
root.appendChild(element);
element = doc.createElement( "DATA" );//添加元素DATA
root.appendChild(element);
// QDomElement userElement = doc.createElement( "USERINFO" );
QDomElement userElement = doc.createElement( "USERINFO" );//添加元素USERINFO,和ACTION等是同级的
QDomElement userElement_1 = doc.createElement( "USB" );//添加元素USB,和USERINFO是同级的
attr = doc.createAttribute( "NAME" );//在USERINFO元素中添加文本NAME
attr.setValue("root");//为文本NAME添加值
userElement.setAttributeNode(attr);
userElement_1.setAttributeNode(attr);
attr = doc.createAttribute( "PASSWORD" );
attr.setValue("123456");
userElement.setAttributeNode(attr);
userElement_1.setAttributeNode(attr);
element.appendChild(userElement);//给DATA添加值
element.appendChild(userElement_1);
doc.save(out, 4); //输出时,缩进4格
return 0;
}
3、除了写入之外,我们也需要对xml函数进行读取的操作
详细源码,可以下载:https://download.csdn.net/download/littlehero_121/11432074
5、编译生成的内容如图所示: