利用qt编写生成xml文件

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、编译生成的内容如图所示:

 

  • 6
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值