您的位置:首页 > 编程语言 > C语言/C++

C++ 使用TinyXML解析XML文件

2014-05-18 21:58 411 查看
1.介绍

  读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。  

  下载TinyXML的网址:http://www.grinninglizard.com/tinyxml/

  使用TinyXML只需要将其中的6个文件拷贝到项目中就可以直接使用了,这六个文件是:tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp。

2.读取XML文件

如读取文件a.xml:

<ToDo>
<Item priority="1">
<bold>
Book store!
</bold>
</Item>
<Item priority="2">
book1
</Item>
<Item priority="2">
book2
</Item>
</ToDo>


读取代码如下:

#include "tinyxml.h"
#include <iostream>
#include <string>
using namespace std;

enum SuccessEnum {FAILURE, SUCCESS};

SuccessEnum saveXML()
{
TiXmlDocument doc;

TiXmlElement* root = new TiXmlElement("root");
doc.LinkEndChild(root);

TiXmlElement* element1 = new TiXmlElement("Element1");
root->LinkEndChild(element1);

element1->SetAttribute("attribute1", "some value");

TiXmlElement* element2 = new TiXmlElement("Element2");  ///元素
root->LinkEndChild(element2);

element2->SetAttribute("attribute2", "2");
element2->SetAttribute("attribute3", "3");

TiXmlElement* element3 = new TiXmlElement("Element3");
element2->LinkEndChild(element3);

element3->SetAttribute("attribute4", "4");

TiXmlText* text = new TiXmlText("Some text.");  ///文本
element2->LinkEndChild(text);

bool success = doc.SaveFile("b.xml");
doc.Clear();

if(success)
return SUCCESS;
else
return FAILURE;
}

int main(int argc, char* argv[])
{
if(saveXML() == FAILURE)
return 1;
return 0;
}


View Code
4.重要函数或类型的说明

  (1)FirstChildElement(const char* value=0):获取第一个值为value的子节点,value默认值为空,则返回第一个子节点。

  (2)NextSiblingElement( const char* _value=0 ) :获得下一个(兄弟)节点。

  (3)LinkEndChild(XMLHandle *handle):添加一个子节点。元素或者文本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: