tinyxml开发入门

2023-10-31

  1. 概述
    tinyxml和xercesc一样,提供了完整的dom操作api。tinyxml相对比较简单好用,编译连接也不容易出问题。xercesc比较麻烦,非常完整庞大,编译有点麻烦,有内存泄漏。我认为在一般需求完全可以使用tinyxml。
    tinyxml官方网站http://www.grinninglizard.com/tinyxml/index.html
    可以在http://sourceforge.net/projects/tinyxml下载自己想要的版本。
    我下载的版本是tinyxml_2_4_0.tar.gz
  2. 在windows上的开发示例
    将tinyxml_2_4_0.tar.gz解压到目录tinyxml,在该目录中可以看到tinyxml.sln和tinyxml.dsw两个文件(我用的是vc6.0),用vc6打开tinyxml.dsw,可以看到4个工程:tinyxml、tinyxmlSTL、tinyxmlTest、tinyxmlTestXml四个工程,编译tinyxml和tinyxmlSTL,分别生成tinyxmld.lib和tinyxmld_STL.lib两个文件。这时就可以用tinyxml进行应用程序开发了。

    创建测试用的xml文件test.xml,内容如下:
    [xhtml]  view plain  copy
    1. <Persons>  
    2.     <Person ID="1">  
    3.         <name>周星星</name>  
    4.         <age>20</age>  
    5.     </Person>  
    6.     <Person ID="2">  
    7.         <name>白晶晶</name>  
    8.         <age>18</age>  
    9.     </Person>  
    10. </Persons>  

    用vc6创建工程tinytest01,添加一个源文件main.cpp,代码如下:
    [cpp]  view plain  copy
    1. #include "tinyxml.h"  
    2. #include "tinystr.h"  
    3.   
    4. #include <iostream>  
    5.   
    6. using namespace std;  
    7.   
    8. int main()  
    9. {  
    10.     //创建一个XML的文档对象。  
    11.     TiXmlDocument *myDocument = new TiXmlDocument("d://test.xml");  
    12.     myDocument->LoadFile();  
    13.     //获得根元素,即Persons。  
    14.     TiXmlElement *RootElement = myDocument->RootElement();  
    15.     //输出根元素名称,即输出Persons。  
    16.     cout << RootElement->Value() << endl;  
    17.     //获得第一个Person节点。  
    18.     TiXmlElement *FirstPerson = RootElement->FirstChildElement();  
    19.     //输出接点名Person  
    20.     cout << FirstPerson->Value() << endl;  
    21.     //获得第一个Person的name节点和age节点和ID属性。  
    22.     TiXmlElement *NameElement = FirstPerson->FirstChildElement();  
    23.     TiXmlElement *AgeElement = NameElement->NextSiblingElement();  
    24.     TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();  
    25.     //输出第一个Person的name内容,即周星星;age内容,即20;ID属性,即1。  
    26.     cout << NameElement->FirstChild()->Value() << endl;  
    27.     cout << AgeElement->FirstChild()->Value() << endl;  
    28.     cout << IDAttribute->Value() << endl;  
    29.   
    30.     return 0;  
    31. }  

    为了编译上面的代码,还需要设置头文件路径和lib路径。
    在vc6中选择菜单"Tools"->"Options",进入"Options"对话框,选择“Directories”页,设置"Include files"路径,选择tinyxml.h和tinystr.h两个文件所在地路径。设置"Library files"路径,设置tinyxmld.lib和tinyxmld_STL.lib所在地路径。

    然后选择工程设置,菜单"Project"->"Settings",进入"Project Settings"对话框,选择"Link"页,在"Object/Library modules"输入框中添加tinyxmld.lib。

    最后编译运行程序,结果如下:
    [cpp]  view plain  copy
    1. Persons  
    2. Person  
    3. 周星星  
    4. 20  
    5. 1  

    看到结果了吧,就那么简单,api和xercesc提供的差不多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tinyxml开发入门 的相关文章

  • Ubuntu运行rviz报错:OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext

    写在前面 笔者的测试环境 xff1a Ubuntu20 04 xff0c ROS noteic 一 问题描述 运行rviz时出现报错 xff1a span class token punctuation span WARN span cla
  • Ubuntu运行rviz报错:OGRE EXCEPTION(3:RenderingAPIException): Unable to create a suitable GLXContext

    写在前面 笔者的测试环境 xff1a Ubuntu20 04 xff0c ROS noteic 一 问题描述 运行rviz时出现报错 xff1a span class token punctuation span WARN span cla
  • Ogre 界面(Overlay)

    Ogre 界面 Overlay 标签 border脚本buttontemplatesplugins引擎 2011 10 16 23 12 4725人阅读 评论 2 收藏 举报 分类 引擎技术 9 这里的界面是指菜单 HUD及提示信息框在内的
  • 纹理(Textures)

    纹理 Textures 原文 Textures 作者 JoeyDeVries 翻译 Django 校对 Geequlim BLumia 我们已经了解到 我们可以为每个顶点使用颜色来增加图形的细节 从而创建出有趣的图像 但是 如果想让图形看起
  • 可编程渲染管线与着色器语言

    可编程渲染管线与着色器语言 Programming pipeline shading language Sampler Direct3D 9 asm ps A sampler is a input pseudo register for a
  • Ogre学习记录

    Ogre学习记录 Posted on 2008 07 09 15 36 RichardHe 阅读 839 评论 2 编辑 收藏 引用 所属分类 OGRE 1 设计初衷 它设计初衷是完全跨平台的 抽象的接口隐藏了平台相关的细节 它设计初衷是大
  • 地形平滑算法

    地形平滑算法 2013 06 20 18 33 2486人阅读 评论 0 收藏 举报 分类 OGRE 41 C C 10 版权声明 本文为博主原创文章 未经博主允许不得转载 拉出来的地下不平滑怎么办 笨办法就是美工一个顶点一个顶点的调整 而
  • 5 个免费开源的 3D 建模/渲染工具。

    5 个开源 3D 建模 渲染工具 3八 2011 作者 riku 本文采用 CC BY NC SA 2 5协议授权 转载请注明 本文链接 5 个免费开源的 3D 建模 渲染工具 1 Art of Illusion 跨平台 支持 Window
  • 地形纹理Splatting技术(翻译)

    地形纹理Splatting技术 翻译 文章来源 http www gamedev net reference articles article2238 asp Texture Splatting in Direct3D Introducti
  • Axiom3D:Ogre地形代码解析

    Axiom3D Ogre地形代码解析 作者 天天不在 发布日期 2014 09 01 20 52 05 我来说两句 0 Tag标签 地形 代码 大致流程 这里简单介绍下 Axiom中采用的Ogre的地形组件的一些概念与如何生成地形 先说下大
  • Texture Format全解析

    Texture Format全解析 Texture Format全解析 What internal representation is used for the texture This is a tradeoff between size
  • VC 运行时库 /MD、/MDd 和 /MT、/MTd

    VC 运行时库 MD MDd 和 MT MTd 2013 01 24 18 42 11058人阅读 评论 2 收藏 举报 分类 C C 19 有段时间在写cuda程序是出现过 error LNK2005 exit 已经在 MSVCRTD l
  • 理解D3D—(2)最多混合几层texture

    理解D3D 2 最多混合几层texture 先提出问题 Q 要是模型有很多层贴图 再加上shadow map 还有ssao 岂不是会不够用了 A 参考资料 IDirect3DDevice9 SetTexture Assigns a text
  • DirectD3D-纹理映射

    DirectD3D 纹理映射 标签 Direct3Ddirectx游戏游戏开发 2014 11 12 14 03 321人阅读 评论 0 收藏 举报 分类 DirectX 8 版权声明 本文为博主原创文章 未经博主允许不得转载 纹理映射的概
  • OGRE动画

    动画是由若干静态画面 快速交替显示而成 因人的眼睛会产生视角暂留 对上一个画面的感知还末消失 下一张画面又出现 就会有动的感觉 计算机图形学中的动画也同样遵循着这一本质的原理 只不过不同于传统动画的手绘和拍摄 Ogre图形引擎可以通过自动或
  • 关于 Demo_Ocean 例子的分析

    关于 Demo Ocean 例子的分析 重要总结 1 该例主要类不再继承自ExampleApplication和ExampleFrameListener 重写驱动类和监听类 2 如何创建OIS的输入系统 1 创建OIS ParamList
  • 2021年11月6日-11月12日(ogre抄写+ue4视频,本周35小时,共1035小时,剩8965小时。)

    这周还不错 不但完成了本周学习任务 还完成了本月学习任务 方法就是 拼命抄源码 抄到吐时就再看看Ue4视频教程 内外兼修 可以在未来的日子里这么进行 每天5小时学习 还是进入状态的 5 7 35小时 共1035小时 剩8965小时 另外 去
  • 第十三章 公告板与粒子系统 标签: ogre公告板粒子系统ogre粒子系统

    Ogre编程入门与进阶 第十三章 公告板与粒子系统 标签 ogre公告板粒子系统ogre粒子系统 2015 07 05 14 41 1365人阅读 评论 1 收藏 举报 分类 Orge模块 16 版权声明 本文为博主原创文章 未经博主允许不
  • Ogre/Mogre:相机两点透视

    我正在显示一个场景 其中有一些立方体 相机采用的是透视法 一切都很好 但我希望垂直线是平行的 两点透视 http en wikipedia org wiki Perspective graphical 两点透视 从正面观察立方体时 我想要的
  • Ogre g++ 编译时错误

    在ubuntu上 我已经编译并安装了所有的ogre库 但是 当我尝试使用此命令编译教程时 g o otest ogre cpp I pkg config libs cflags OGRE OIS lOgreMain lOI 它输出 tmp

随机推荐

  • Kafka Eagle 安装与部署详解

    Kafka Eagle 安装与部署详解 在大数据领域中 Kafka 是一种高性能 分布式的消息队列系统 被广泛应用于实时数据流处理和日志收集等场景 而 Kafka Eagle 则是一款用于监控和管理 Kafka 集群的开源工具 它提供了丰富
  • transforms.Compose()类详解:串联多个transform操作

    torchvision是pytorch的一个图形库 它服务于PyTorch深度学习框架的 主要用来构建计算机视觉模型 torchvision transforms主要是用于常见的一些图形变换 以下是torchvision的构成 torchv
  • 如何做好App性能测试

    如何做好App性能测试 App性能测试和网站性能测试不一样 它分成客户端性能测试和服务器性能测试 下面我们详细来说明 1 客户端性能测试 一个App做的好不好 不仅仅只反应在功能上 被测的app在中低端机上的性能表现也很重要 比如 一个很好
  • JAVA安装与配置教程

    一 下载jdk 下载链接 https pan baidu com s 1Z6SJRcHCsMRMzV 3ole0dg 提取码 h42f 二 安装java 1 下一步 2 点击 更改 选择安装路径 建议在Java文件夹里创建两个文件夹 分别命
  • 计算机网络笔记(五):传输层

    文章目录 前言 多路复用和多路分用 UDP User Datagram Protocol RFC 768 可靠数据传输原理 流水线机制与滑动窗口协议 Go Back N GBN 协议 Selective Repeat SR 协议 TCP 协
  • 【js】删除数组中指定元素

    删除数组中指定的元素 export const removeArr function arr val let index arr indexOf val if index gt 1 arr splice index 1 return arr
  • varying是vs和Ps之间的shader传递变量

    正如uniform是shader和应用程序之间传递的变量 varying是shader之间传递的变量 比如 vs的输出 也就是Ps的输入
  • 简单理解css中的垂直居中和水平居中,即vertical-align和text-align属性

    前言 在很多情况下 我们要使用到内容的居中 这里的居中包括了垂直居中和水平居中 下面来浅谈一下 对于水平居中的属性text align和垂直居中属性vertical align的理解 1 text align 如果要实现水平居中 比如我们要
  • STM32菜鸟成长记录---系统滴答定时器(systick)应用

    1 systick介绍 Systick就是一个定时器而已 只是它放在了NVIC中 主要的目的是为了给操作系统提供一个硬件上的中断 号称滴答中断 滴答中断 这里来简单地解释一下 操作系统进行运转的时候 也会有 心跳 它会根据 心跳 的节拍来工
  • java线程间如何通信

    Java线程之间可以通过以下方式进行通信 使用 wait 和 notify 方法 这需要使用同步代码块或同步方法 在同步代码块或同步方法中 线程可以调用 wait 方法阻塞 并在其他线程调用 notify 方法后恢复执行 使用 CountD
  • Altium Designer之图片logo导入笔记

    图片logo导入分为两种 丝印类型 露铜 1 在PCB页面 文件 运行脚本 弹出运行条目对话框 浏览 选择 PRJSCR文件 点击运行脚本 确定 弹出对话框 图1 1 选择导入文件 图1 2 导入对话框 2 点击加载 选择 bmp格式图片
  • [论文解读]Attention is all you need

    论文地址 http papers nips cc paper 7181 attention is all you need pdf 发表会议 NIPS2017 文章目录 动机 背景 思考 细节 网络结构 总结 参考 最早提出self att
  • windows cd ~/.ssh报错

    这里提供一个你之前可能有这个文件 打开这个在进入
  • 虚拟化服务器安全性,服务器虚拟化安全性

    服务器虚拟化安全性 内容精选 换一换 裸金属服务器与周边服务的依赖关系如图1所示 企业主机安全 Host Security Service HSS 是提升服务器整体安全性的服务 通过主机管理 风险防御 入侵检测 安全运营 网页防篡改功能 可
  • Kaldi安装与编译报错

    Environment Rule number 1 use Linux Although it is possible to use Kaldi on Windows most people I find trustworthy convi
  • 【数据结构】单链表的应用——有序多项式合并化简

    写在前面的话 本人是学生 水平有限 测试用例较少 如果有纰漏还请见谅 有如下俩个多项式 利用链表将他们合并成一个并且化简 结点结构 typedef struct node float coef 系数 int exp 指数 struct no
  • 缺陷检测公开数据集大全

    一 弱监督学习下的工业光学检测 DAGM 2007 数据下载链接 https hci iwr uni heidelberg de node 3616 数据集简介 主要针对纹理背景上的杂项缺陷 较弱监督的训练数据 包含十个数据集 前六个为训练
  • 学习太极创客 — MQTT 第二章(二)ESP8266 QoS 应用

    因此 这里将仅介绍如何使用 ESP8266 来接收 QoS 1 的 MQTT 消息 这里的程序与 学习太极创客 MQTT 八 ESP8266订阅MQTT主题 这一小节中的内容基本一致 只不过这里的示例是 QoS 1 项目名称 Project
  • 控制listview大图标之间的间距

    DllImport user32 dll CharSet CharSet Auto public static extern IntPtr SendMessage IntPtr hWnd int msg int wParam int lPa
  • tinyxml开发入门

    概述 tinyxml和xercesc一样 提供了完整的dom操作api tinyxml相对比较简单好用 编译连接也不容易出问题 xercesc比较麻烦 非常完整庞大 编译有点麻烦 有内存泄漏 我认为在一般需求完全可以使用tinyxml ti