TinyXML官网之上介绍的XML文件的几种形式,咱们用TinyXML集的类都可以创建这几种格式的XML文件。
1 XML文件的几种结构
First One
<?xml version="1.0" ?> <Hello>World</Hello> |
Second One
<?xml version="1.0" ?>
<poetry>
<verse>
Alas
Great World
Alas (again)
</verse>
</poetry>
|
Third One
<?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>
|
Fourth One
<?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>
|
2 XML文件的结构
不管是哪一种形式的XML文件,所具结构都是一样的。
(1)文件头
文件头由XML声明( XML文件的第一语句)和可缺省(可缺省笔记也就缺省了)的DTD文件类型声明组成。
XML声明
XML声明在XML文件中必须具有,它的内容使文件符合XML的标准规格。格式为:
<?xml 版本信息编码信息文档独立性信息 ?>例:<? Xml version=”1.0”encoding=”gb2312” standalone=”yes”>
XML声明必须出现在XML文档的第一行。
(2)文件体
文件体中包含的是XML文件的内容,XML元素是XML文件内容的基本单元。从语法讲,一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。
<bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
在上例中,<bookstore> 和 <book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。
在上例中,只有 <book> 元素拥有属性 (category="CHILDREN")。
摘自<http://www.w3school.com.cn/xml/xml_elements.asp>
所有的数据内容都必须在某个标记的开始和结束标记内,而每个标记又必须包含在另一个标记的开始与结束标记内,形成嵌套式的分布,只有最外层的标记不必被其他的标记所包含。最外层的是根元素(Root),又称文件(Document)元素,所有的元素都包含在根元素内。
3 TinyXML类与XML文件的对应
不用去关心XML语法,因为在这里我们要做的不是用XML语言去编写XML语言。我们只是调用TinyXML中的类来完成对XML文件的创建、读写操作。所以,我们只需要了解一点关于XML文件的结构即可用TinyXML类来编写咱们的XML文件,达到供程序使用的目的(存储数据,代替文件流 )。
在明白XML结构(诸如元素等的重要结构)之后令人想到:TinyXML类以XML文件为对象,封装了与XML文件每个部分对应的类。TiXmlDocument对应XML整个文件,TiXmlDeclaration类对应XML文件的声明部分,TiXmlElement对应XML的每个元素( XML文体的主要内容就是元素,恐怕对其类操作很多 ),因为XML元素还包括“属性”、“文本”及“包含的元素”等内容,所以还TinyXML还拥有TiXmlText实现XML内容的类,还拥有实现每个元素属性的类TiXmlAttribute。用每个类的成员函数LinkEndChild()来实现XML中每个元素的嵌套,按照XML的结构流程使用TinyXML类,使用TinyXML时参看其官方手册。是表述不清 ]
明白这一层关系之后,在使用TinyXML的脉络上就更应该清晰了。
此次笔记记录完毕。
原文链接:https://www.f2er.com/xml/299867.html