TinyXml基本入门(一)

原创 2016年08月31日 16:13:49

参考:http://blog.csdn.net/clever101/article/details/5334369

参考:http://www.programgo.com/article/73711496638/


近期在学习xml,偶然得知tinyXml这个东西,想尽快上手。

(1)在http://sourceforge.net/projects/tinyxml/下载TinyXml的官方例子

(2)新建空的控制台程序,将(1)中下载的官方例子中的

tinyxml.h

tinystr.h

tinystr.cpp

tinyxml.cpp

tinyxmlparser.cpp

tinyxmlerror.cpp

包含到当前工程中。

(3)新建createXML.cpp.cpp文件

包含头文件 #include "tinyxml.h"

复制如下代码

#include <iostream>
#include <tchar.h>
#include "tinyxml.h"


/*! 
*  /brief 创建xml文件。 

*  /param XmlFile xml文件全路径。 
*  /return 是否成功。true为成功,false表示失败。 
*/  
bool CreateXml(std::string XmlFile)  
{  
    // 定义一个TiXmlDocument类指针  
    TiXmlDocument *pDoc = new TiXmlDocument;  
    if (NULL==pDoc)  
    {  
        return false;  
    }  
    TiXmlDeclaration *pDeclaration = new TiXmlDeclaration(_T("1.0"),_T(""),_T(""));  
    if (NULL==pDeclaration)  
    {  
        return false;  
    }  
    pDoc->LinkEndChild(pDeclaration);  
    // 生成一个根节点:MyApp  
    TiXmlElement *pRootEle = new TiXmlElement(_T("MyApp"));  
    if (NULL==pRootEle)  
    {  
        return false;  
    }  
    pDoc->LinkEndChild(pRootEle);  
    // 生成子节点:Messages  
    TiXmlElement *pMsg = new TiXmlElement(_T("Messages"));  
    if (NULL==pMsg)  
    {  
        return false;  
    }  
    pRootEle->LinkEndChild(pMsg);  
    // 生成子节点:Welcome  
    TiXmlElement *pWelcome = new TiXmlElement(_T("Welcome"));  
    if (NULL==pWelcome)  
    {  
        return false;  
    }  
    pMsg->LinkEndChild(pWelcome);  
    // 设置Welcome节点的值  
    std::string strValue = _T("Welcome to MyApp");  
    TiXmlText *pWelcomeValue = new TiXmlText(strValue.c_str());  
    pWelcome->LinkEndChild(pWelcomeValue);  
    // 生成子节点:Farewell  
    TiXmlElement *pFarewell = new TiXmlElement(_T("Farewell"));  
    if (NULL==pFarewell)  
    {  
        return false;  
    }  
    pMsg->LinkEndChild(pFarewell);  
    // 设置Farewell节点的值  
    strValue = _T("Thank you for using MyApp");  
    TiXmlText *pFarewellValue = new TiXmlText(strValue.c_str());  
    pFarewell->LinkEndChild(pFarewellValue);  
    // 生成子节点:Windows  
    TiXmlElement *pWindows = new TiXmlElement(_T("Windows"));  
    if (NULL==pWindows)  
    {  
        return false;  
    }  
    pRootEle->LinkEndChild(pWindows);  
    // 生成子节点:Window  
    TiXmlElement *pWindow = new TiXmlElement(_T("Window"));  
    if (NULL==pWindow)  
    {  
        return false;  
    }  
    pWindows->LinkEndChild(pWindow);  
    // 设置节点Window的值  
    pWindow->SetAttribute(_T("name"),_T("MainFrame"));  
    pWindow->SetAttribute(_T("x"),_T("5"));  
    pWindow->SetAttribute(_T("y"),_T("15"));  
    pWindow->SetAttribute(_T("w"),_T("400"));  
    pWindow->SetAttribute(_T("h"),_T("250"));  
    // 生成子节点:Window  
    TiXmlElement *pConnection  = new TiXmlElement(_T("Connection"));  
    if (NULL==pConnection)  
    {  
        return false;  
    }  
    pRootEle->LinkEndChild(pConnection);  
    // 设置节点Connection的值  
    pConnection->SetAttribute(_T("ip"),_T("192.168.0.1"));  
    pConnection->SetAttribute(_T("timeout"),_T("123.456000"));  
    pDoc->SaveFile(XmlFile.c_str());  
    return true;  
}   


/*! 
*  /brief 打印xml文件。 

*  /param XmlFile xml文件全路径。 
*  /return 是否成功。true为成功,false表示失败。 
*/  
bool PaintXml(std::string XmlFile)  
{  
    // 定义一个TiXmlDocument类指针  
    TiXmlDocument *pDoc = new TiXmlDocument();  
    if (NULL==pDoc)  
    {  
        return false;  
    }  
    pDoc->LoadFile(XmlFile.c_str());  
    pDoc->Print();  
    return true;  
}  


int main()
{
    std::string XmlFile = _T("myTestTinyXml");
    if (CreateXml(XmlFile))
    {
        PaintXml(XmlFile);
    }
     
    return 0;
}

(4)编译链接运行即可!

本文的代码链接:http://download.csdn.net/detail/fan0920/9617659


相关文章推荐

Tinyxml使用基本操作

  • 2012年12月22日 07:20
  • 126KB
  • 下载

cocos2dx 3.6 关于场景间传值(UserDefault)、本地存储的基本方法(tinyxml2)

由于我要制作游戏的排行榜,在制作过程中遇到了不少的问题,一开始是不会把这个场景里面得到的数据传递到另一个页面,后来运用了UserDefault传值成功之后存入数组之中成功实现了排行榜以及排序的功能。然...

TinyXML入门教程

转自:http://blog.csdn.net/shangguanwaner/article/details/3853904 TinyXML入门教程 1 什么是XML? 1 文档类 2 创...
  • dqvega
  • dqvega
  • 2011年09月04日 18:14
  • 383

tinyxml入门学习

转帖请注明出处

TinyXML入门教程

TinyXML入门教程 1 什么是XML? 1 文档类 2 创建文档对象 3 输出文档对象 3 保存文档对象 4 返回第一个根元素 5 声明类 5 注释类 6 元素类 6 节点名 ...

tinyxml快速入门3

在《TinyXml 快速入门(二)》介绍使用tinyxml库获取xml文件声明,查询指定节点、删除指定节点的做法。在本文中继续介绍修改指定节点和增加节点的做法。        修改节点其实...

qt中tinyxml2的基本使用方法

TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。 这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XM...

TinyXml的基本用法

有人说xml格式文件(简称xml)就是一个小型的数据库,对数据库的任何操作可以在xml格式上完成后,笔者对数据库以及xml的使用还没有达到这种地步,所以也就没有权利评价这句话,但是从这句话我们可以知道...

TinyXml库的基本操作

#ifndef _PARSE_XML_H_ #define _PARSE_XML_H_ #include "tinyxml.h" #include "tinystr.h" #include...

TinyXml快速入门(三)

作者:朱金灿 来源:http://www.cnblogs.com/clever101         在《TinyXml 快速入门(二)》介绍使用tinyxml库获取xml文件声明,查询...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TinyXml基本入门(一)
举报原因:
原因补充:

(最多只允许输入30个字)