c/C++的xml解析
2013-04-29 19:34
435 查看
现代的程序开发,难免会需要去解析一些静态数据。xml作为静态数据存储的一种常见方式,如何拿c/c++来解析,就成为了一个重要的话题。
查阅了不少资料后,先决定试试tinyXml。因为它的风格,我更喜欢一些。
下面简单的介绍一下如何使用。
假设test.xml这么设计
<class>
<number in_use="1">233</number>
<grade>1</grade>
</class>
1. 首先定义一个xml的文件对象: TiXmlDocument doc;
2. 然后开始加载文件: doc.LoadFile("test.xml")
3. 获得根节点, TiXmlElement* root = doc.FirstChildElement();
4. 获得根节点级别下的第一个节点(因为平时的跟节点通常是这么设计的, 用来说明这个文档所描述的对象)
在例子里就是number: TiXmlElement* elem = root->FirstChildElement();
5. 如果要访问grade节点,也就是说访问number的兄弟节点,那么就是 TiXmlElement elem2 = elem->NextSiblingElement();
非常简单直白
6. 如果要访问其中的属性呢,比如说number里的属性in_use的值, 那么就是elem->Attribute("in_use");
7. 如果想获得“233”这个值,就用elem->GetText();
至此对于基本的tinyxml解析已经够用了。后面有机会再深入其他的函数功能.
查阅了不少资料后,先决定试试tinyXml。因为它的风格,我更喜欢一些。
下面简单的介绍一下如何使用。
假设test.xml这么设计
<class>
<number in_use="1">233</number>
<grade>1</grade>
</class>
1. 首先定义一个xml的文件对象: TiXmlDocument doc;
2. 然后开始加载文件: doc.LoadFile("test.xml")
3. 获得根节点, TiXmlElement* root = doc.FirstChildElement();
4. 获得根节点级别下的第一个节点(因为平时的跟节点通常是这么设计的, 用来说明这个文档所描述的对象)
在例子里就是number: TiXmlElement* elem = root->FirstChildElement();
5. 如果要访问grade节点,也就是说访问number的兄弟节点,那么就是 TiXmlElement elem2 = elem->NextSiblingElement();
非常简单直白
6. 如果要访问其中的属性呢,比如说number里的属性in_use的值, 那么就是elem->Attribute("in_use");
7. 如果想获得“233”这个值,就用elem->GetText();
至此对于基本的tinyxml解析已经够用了。后面有机会再深入其他的函数功能.
相关文章推荐
- c++常用xml解析方式
- 利用Xerces C++解析XML文档
- C++中XML的解析之TinyXML
- TinyXML(C++ XML解析库)
- C++ 使用TinyXML解析XML文件
- C++解析XML-TinyXml
- C++利用CMarkup来解析xml文件
- C++ XML解析之TinyXML篇
- 【C++】使用libxml解析XML文件
- C++ XML解析之tinyXML
- 一个C++的 XML 解析程序
- C/C++的XML解析库
- C++调用迅雷接口解析XML下载功能(迅雷下载功能)
- 用C++解析XML文档---头痛
- C++ tinyxml解析小试及VC6.0调试中遇到的问题
- 调用Xerces C++ XML解析库引起的内存泄漏
- C++TinyXml读取解析xml文件
- C++跨平台XML解析类库-pugixml
- C/C++解析XML,pugixml库的使用
- C++使用TinyXml2解析Xml