VS下TinyXml使用

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 15:55   32   0

1. 概述

TinyXml是C++平台下简单易用的XML操作工具,可以从SourceForge上下载到最新版本的软件。记录TinyXml的基本使用。

2. 使用

step1:下载TinyXml之后得到一个压缩包文件,解压文件得到TinyXML的代码文档等。
step2:在vs的工程中添加下面6个文件,并且在cpp文件中添加#include "stdafx.h"


step3:在需要使用TinyXml的文件中添加引用:

//包含TinyXML
#include "tinystr.h"
#include "tinyxml.h"
至此,TinyXml在VS上的配置已经完成。接下来就需要开始通过它提供的工具来生成XML。


这里使用官方给出的例子来说明,先看一下最后XML生成的结果:

<?xml version="1.0" ?>
<MyApp>
    <!-- Settings for MyApp -->
    <Messages>
        <Welcome>Welcome to MyApp</Welcome>
        <Farewell>Thank you for using MyApp</Farewell>
    </Messages>
    <Windows>
        <Window name="MainFrame" x="5" y="15" w="400" h="250" />
    </Windows>
    <Connection ip="192.168.0.1" timeout="123.456000" />
</MyApp>

实现的代码:

void write_app_settings_doc()
{
 TiXmlDocument doc;  //定义一个文档类的对象,作为第一个结点
 TiXmlElement* msg; //定义一个子结点
 TiXmlDeclaration* decl = new TiXmlDeclaration("1.0", "", "");  //第一行预处理指令,分别是符合的规范版本号;编码的字符集UTF-8、GB2312
 //之类的
 doc.LinkEndChild(decl); //将配置好的预处理指令,添加到XML最开始

 TiXmlElement * root = new TiXmlElement("MyApp"); //定义一个子结点
 doc.LinkEndChild(root); //添加进Doc类对象

 TiXmlComment * comment = new TiXmlComment(); //写XML注释
 comment->SetValue(" Settings for MyApp ");
 root->LinkEndChild(comment);

 TiXmlElement * msgs = new TiXmlElement("Messages"); //定义一个结点
 root->LinkEndChild(msgs); //添加到根节点

 msg = new TiXmlElement("Welcome"); //初始化一个结点
 msg->LinkEndChild(new TiXmlText("Welcome to MyApp")); //在这个结点中添加文本
 msgs->LinkEndChild(msg); //添加到上一级结点中

 msg = new TiXmlElement("Farewell"); //初始化一个结点
 msg->LinkEndChild(new TiXmlText("Thank you for using MyApp"));
 msgs->LinkEndChild(msg);

 TiXmlElement * windows = new TiXmlElement("Windows");
 root->LinkEndChild(windows);

 TiXmlElement * window;
 window = new TiXmlElement("Window");
 windows->LinkEndChild(window);
 window->SetAttribute("name", "MainFrame"); //设置结点的一些属性
 window->SetAttribute("x", 5);
 window->SetAttribute("y", 15);
 window->SetAttribute("w", 400);
 window->SetAttribute("h", 250);

 TiXmlElement * cxn = new TiXmlElement("Connection");
 root->LinkEndChild(cxn);
 cxn->SetAttribute("ip", "192.168.0.1");
 cxn->SetDoubleAttribute("timeout", 123.456); // floating point attrib

 doc.SaveFile("appsettings.xml");
}


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP