TinyXML——解析xml文件的类库工具

今天背考研单词,感觉可以自己做一个小小单词本,所以就想办法弄词库,在网上一搜发现,有xml版本的新东方考研词汇的单词库,所以就想着写个xml解析类的单词本。

今天在网上看了下各种xml文件解析的库,感觉TinyXML类库还可以,所以就下载下来打算试试,一试果然挺好用的,这就解决写这个程序了第一步——解析XML文件

这是本人上传的6个类库,和开发文档,类库直接导入工程中然后应用相应的头文件即可,地址:http://download.csdn.net/detail/iaccepted/5298810


例子如下:

#include "tinyxml.h"
#include <iostream>
#include <string>

using namespace std;

int main()
{
    tixmlDocument* myDocument = new tixmlDocument();
    myDocument->LoadFile("Students.xml");
    tixmlElement* rootElement = myDocument->RootElement();  //Class
    tixmlElement* studentsElement = rootElement->FirstChildElement();  //Students
    tixmlElement* studentElement = studentsElement->FirstChildElement();  //Student
    while ( studentElement ) {
        tixmlAttribute* attributeOfStudent = studentElement->FirstAttribute();  //获得student的name属性
        while ( attributeOfStudent ) {
          std::cout << attributeOfStudent->Name() << " : " << attributeOfStudent->Value() << std::endl;
          attributeOfStudent = attributeOfStudent->Next();
        }
        tixmlElement* phoneElement = studentElement->FirstChildElement();//获得student的phone元素
        std::cout << "phone" << " : " << phoneElement->GetText() << std::endl;
        tixmlElement* addressElement = phoneElement->NextSiblingElement();
        std::cout << "address" << " : " << phoneElement->GetText() << std::endl;
        studentElement = studentElement->NextSiblingElement();
    }
    return 0;
}

自己接着就写了个解析单词的例子:

<wordbook>
	<item>
		<word>gradual</word>
		<trans>a.逐渐的,逐步的</trans>
	</item>
	<item>
		<word>deceive</word>
		<trans>v.欺骗,蒙蔽</trans>
	</item>		
</wordbook>

程序:
#include "tinyxml.h"
#include <iostream>
#include <string>

using namespace std;

int main()
{
    tixmlDocument* myDocument = new tixmlDocument();
    myDocument->LoadFile("words.xml");
    tixmlElement* wordbook = myDocument->RootElement();  //wordbook
    tixmlElement* items = wordbook->FirstChildElement();//item
    while ( items ) {
        tixmlElement* word = items->FirstChildElement();
        std::cout << word->GetText() << std::endl;
        tixmlElement* trans = word->NextSiblingElement();
        std::cout << trans->GetText() << std::endl;
        items = items->NextSiblingElement();
    }
    return 0;
}

以上例子完全通过测试,所以,感觉这个类库很好用的,呵呵

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念