没有合适的资源?快使用搜索试试~ 我知道了~
首页TinyXML指南[中文].pdf
本文是 TinyXML 2.5.3 版本 Document 中的《TinyXML Tutorial》的翻译文档,原文出自 TinyXML 源码包doc目录。在线文档:http://www.grinninglizard.com/tinyxmldocs/tutorial0.html。 TinyXML是一个简单小巧,可以很容易集成到其它程序中的C++ XML解析器。简 单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。TinyXML使用文档对象模型(DOM),这意味着XML数据被解析成一个可被浏览和操作的C++对象,然后它可以被写到磁盘或者另一个输出流中。你也可以把C++对象构造成一个XML文档然后把它写到磁盘或者另一个输出流中。
资源详情
资源评论
资源推荐

TinyXML 指南
注: 本文是 TinyXML 2.5.3 版本 Document 中的《TinyXML Tutorial》的翻译文档,由本人
Dennis.Gao 翻译,版权归原作者所有,转载本文档请注明出处。原文出自 TinyXML 源码包 doc
目录。在线文档:http://www.grinninglizard.com/tinyxmldocs/tutorial0.html
Author : Dennis.Gao
Date : 2008.01.01
这是什么?
本指南就如何有效的使用 TinyXML 提供一些窍门和建议。
这里也会包括一些 C++ 的窍门,像如何在字符串和整数之间进行转换。这和 TinyXML 本身并没
有任何关系,但是它会对你的工程有所帮助,所以我把它写了进来。
如果你不知道 C++ 的基本概念,那么本指南对你没有任何用处。同样,如果你不知道 DOM 是什
么,先在别的地方学习一下吧。
开始之前
一些 XML 数据集/文件将会被用到:
example1.xml:
<?xml version="1.0" ?>
<Hello>World</Hello>
example2.xml:
<?xml version="1.0" ?>
<poetry>
<verse>
Alas
Great World
Alas (again)
</verse>
</poetry>
example3.xml:
<?xml version="1.0" ?>

<shapes>
<circle name="int-based" x="20" y="30" r="50" />
<point name="float-based" x="3.5" y="52.1" />
</shapes>
example4.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>
开始起步
从文件加载 XML
将一个文件加载到 TinyXML DOM 中的最简单方法:
TiXmlDocument doc( "demo.xml" );
doc.LoadFile();
下面是一个更实际的用法。它会加载文件并在标准输出中显示文件内容:
// load the named file and dump its structure to STDOUT
void dump_to_stdout(const char* pFilename)

{
TiXmlDocument doc(pFilename);
bool loadOkay = doc.LoadFile();
if (loadOkay)
{
printf("\n%s:\n", pFilename);
dump_to_stdout( &doc ); // defined later in the
tutorial
}
else
{
printf("Failed to load file \"%s\"\n", pFilename);
}
}
这是在 main() 函数中使用这个函数的简单示例:
int main(void)
{
dump_to_stdout("example1.xml");
return 0;
}
Example 1 的 XML 是:
<?xml version="1.0" ?>
<Hello>World</Hello>
运行这个程序就可以将 XML 文件显示在控制台或 DOS 窗口中:
DOCUMENT
+ DECLARATION
+ ELEMENT Hello

+ TEXT[World]
在本指南的后面会给出 dump_to_stdout() 函数的定义,它对你了解如何递归遍历一个 DOM 十
分有用。
通过编程建立 XML 文档
下面的函数可以建立 Example 1 文档:
void build_simple_doc( )
{
// Make xml: <?xml ..><Hello>World</Hello>
TiXmlDocument doc;
TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "",
"" );
TiXmlElement * element = new TiXmlElement( "Hello" );
TiXmlText * text = new TiXmlText( "World" );
element->LinkEndChild( text );
doc.LinkEndChild( decl );
doc.LinkEndChild( element );
doc.SaveFile( "madeByHand.xml" );
}
可以通过下面的调用来加载文件并将它显示在控制台上:
dump_to_stdout("madeByHand.xml"); // this func defined later in the
tutorial
你会发现它和 Example 1 是完全一样的:
madeByHand.xml:
Document
+ Declaration
+ Element [Hello]

+ Text: [World]
下面这段代码通过节点的建立和连接的不同顺序生成一个完全相同的 XML DOM :
void write_simple_doc2( )
{
// same as write_simple_doc1 but add each node
// as early as possible into the tree.
TiXmlDocument doc;
TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "",
"" );
doc.LinkEndChild( decl );
TiXmlElement * element = new TiXmlElement( "Hello" );
doc.LinkEndChild( element );
TiXmlText * text = new TiXmlText( "World" );
element->LinkEndChild( text );
doc.SaveFile( "madeByHand2.xml" );
}
这两段代码生成的是同一段 XML ,如下:
<?xml version="1.0" ?>
<Hello>World</Hello>
也就是这种结构形式:
DOCUMENT
+ DECLARATION
剩余26页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论30