指南 指南 注: 本文是 TinyXML 2.5.3 版本 Document 中的《TinyXML Tutorial》的翻译文档,由本人 Dennis.Gao 翻译,版权归原作者所有,转载本文档请注明出处。原文出自 TinyXML 源码包doc目录。在线文档: Author : Dennis.Gao Date : 2008.01.01 这是什么? 本指南就如何有效的使用 TinyXML 提供一些窍门和建议。 这里也会包括一些 C++ 的窍门,像如何在字符串和整数之间进行转换。这和 TinyXML 本身并没有任何关系,但是它会对你的工程有所帮助,所以我把它写了进来。 如果你不知道 C++ 的基本概念,那么本指南对你没有任何用处。同样,如果你不知道 DOM 是什么,先在别的地方学习一下吧。 开始之前 一些 XML 数据集/文件将会被用到: example1.xml: example2.xml: example3.xml: example4.xml: 开始起步 从文件加载 XML 将一个文件加载到 TinyXML DOM 中的最简单方法: 下面是一个更实际的用法。它会加载文件并在标准输出中显示文件内容: 这是在 main() 函数中使用这个函数的简单示例: Example 1 的 XML 是: 运行这个程序就可以将 XML 文件显示在控制台或 DOS 窗口中: 在本指南的后面会给出 dump_to_stdout() 函数的定义,它对你了解如何递归遍历一个 DOM 十分有用。 通过编程建立 XML 文档 下面的函数可以建立 Example 1 文档: 可以通过下面的调用来加载文件并将它显示在控制台上: 你会发现它和 Example 1 是完全一样的: 下面这段代码通过节点的建立和连接的不同顺序生成一个完全相同的 XML DOM : 这两段代码生成的是同一段 XML ,如下: 也就是这种结构形式: 属性 很简单就可以给一个已经存在的节点设置属性: 你也可以使用 TiXmlAttribute 对象来做这件事。 下面这段代码给出了一种(并非仅此一种)如何得到一个素的所有属性,然后打印出名字和字符串值的方法,并且,如果这些值可以转换成整形或浮点型,那么把他们也打印出来: 将文档写入文件 将建立好的 DOM 写入一个文件很简单: 回想一下 example 4: 下面的函数用来建立这个 DOM 并把它写进一份名为 “appsettings.xml” 的文件中: 通过 dump_to_stdout() 函数可以显示这个结构: 很高兴在默认的情况下, TinyXml 用其他的 API 所谓的“优美”格式来写 XML ,它修改素文字的空白,然后用嵌套层次的方式显示这棵树。 我没有注意到在写文件的时候是否有办法关掉缩排,但是这肯定很容易。 [ Lee:在 STL 模式下很容易,只要使用 cout XML 与 C++ 对象之间的转换 介绍 这个示例假定你正要加载你的应用设置并把它们保存在 XML 文件中,就像 example4.xml 那样。 有许多办法可以完成这件事。例如,看一看 TinyBind 这个工程,你可以在这里找到它: 本节给出一个使用 XML 来加载并保存一个基本的对象结构的浅显易懂的方法。 建立你的对象类 先从下面的这些基类入手: 这是一个简化的 main() 函数,它演示了如何建立一个默认设置的树的对象,保存它以及重新载入它: 下面这个 main() 函数演示了如何建立,修改,保存,还有加载一个结构体: 当 save() 函数和 load() 函数完成后(在下面),运行这个 main() 函数,在控制台会显示: HitchHikerApp: Don’t Panic HitchHikerApp: Show window ‘BookFrame’ at 15,25 (300 x 100) HitchHikerApp: Thanks for all the fish 编码为 XML 有许多不同的方法来解决如何将它(一个结构体)保存在文件中。比如: 运行这个修改过的 main() 函数会生成如下的文件: 从 XML 解码 就像给一个对象编码一样,也有许多办法可以把 XML 解码为你自己的 C++ 对象结构。下面的方法使用了 TiXmlHandles 类。 dump_to_stdout() 函数的完整代码 下面是一份复制粘贴过来的演示程序:加载任意一份 XML 文件,然后使用上面所说的递归遍历的方式将 XML 结构输出到标准输出中。 在命令行或 DOS 窗口中这样运行它,比如: 作者以及变动 由 Ellers 于2005年4月~6月编写 由 Lee Thomason 于2005年9月整理入 doc 文档中 2005年10月由 Ellers 进行更新 因翻译仓促,水平有限,文中如有疏漏或错误,请不吝赐教。联系作者: Email / MSN: blog: http://LoveRene.cublog.cn/
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/76549.html