使用TinyXml库解析XML文件(QT 源码)

2 篇文章 0 订阅
2 篇文章 0 订阅
#include <QCoreApplication>
#include <QDebug>
#include <iostream>
#include "tinyxml.h"    //添加头文件
/*QT5.9.1 + MSVC2015*/

using namespace std;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //打开xml文件
    TiXmlDocument doc;
    if(!doc.LoadFile("../XML/1.xml"))
    {
        qDebug()<<"加载XML文件失败";
        const char *errorStr = doc.ErrorDesc();
        qDebug()<<errorStr; //打印失败原因;
    }
    else
    {
        //成功打开XML文件
        qDebug()<<"成功打开XML文件";

        //获取根节点
        TiXmlElement *root = doc.FirstChildElement();

        //遍历根节点的属性
        TiXmlAttribute *IDAttribute = root->FirstAttribute();
        for(IDAttribute;IDAttribute!=NULL;IDAttribute = IDAttribute->Next())
        {
            string attributeName = IDAttribute->Name(); //获取属性名
            string attributeValue = IDAttribute->Value();   //获取属性值
            cout<<attributeName<<" = "<<attributeValue<<endl;
        }

        /*
         * 获取根节点的第一个子节点,也可以使用其重载函数 根据元素名获取指定的子节点 如:
         * const TiXmlElement* FirstChildElement( const char * _value ) const;
        */
        TiXmlElement *NodeElement = root->FirstChildElement();
        //NodeElement->Attribute("AttributeName"); 可以通过该方法获取指定属性的值,存在返回实际值,不存在返回NULL
        //NodeElement = NodeElement->NextSiblingElement(); 可以通过该方法获取NodeElement节点的兄弟节点
        string nodeElementName = NodeElement->Value();  //该节点名
        string nodeElementValue = NodeElement->FirstChild()->Value(); //该节点(元素)的值
        cout<<"<"<<nodeElementName<<">"<<nodeElementValue<<"</"<<nodeElementName<<">"<<endl;
    }
    doc.Clear();
    return a.exec();
    /*
        由于实际有限其它函数就不一一介绍了,有时间在进行完善,谢谢;
    */
}


TinyXml下载链接:https://pan.baidu.com/s/1kXiTFSF

源码链接:https://pan.baidu.com/s/1jJRuKsQ

使用TinyXML只需要将其中的6个文件拷贝到项目中就可以直接使用了,这六个文件是:tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp;








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值