摘自:鼯鼠 http://www.dingge.com/forum/dispbbs.asp?boardid=43&Id=14213
<?xml version="1.0" encoding="UTF-8"?>
<document>
<English name="MY" value="UTF32">The world has many languages</English>
<Button name="OK_btn" x = "20" y = "77">OK</Button>
</document>
-------------------------------------------------------------------------------------------------------------------------
#include "../Tinyxml/tinyxml.h"
#include <iostream>
#include <string>
int main(void)
{
TiXmlDocument doc( "test2.xml");
doc.LoadFile();
TiXmlHandle docH( &doc );
TiXmlElement* element = docH.FirstChildElement( "document" ).FirstChildElement( "Button" ).Element();
std::cout<<"<"<<element->Value()<<">"<<std::endl;
std::cout<<" name = "<<element->Attribute( "name" )<<std::endl;
std::cout<<" x = "<< element->Attribute( "x" )<<std::endl;
std::cout<<" y = "<< element->Attribute( "y" )<<std::endl;
std::cout<<" Text = "<<element->GetText()<<std::endl;
getchar();
return 0;
}
这些代码我想已经很清楚了,所有的元素的值都会打印在屏幕上,如下:
<Button>
name = OK_btn
x = 20
y = 77
Text = OK
这里的element 指针就是当前我们操作的指针,通过docH.FirstChildElement( "document" ).FirstChildElement( "Button" ).Element();方法我们获取了要寻找的Button这个元素的指针,然后它的元素就可以通过element->Attribute( "name" );element->Attribute( "x" )来得到了,使用非常方便。
Tinyxml中还有另外一种查找 元素的方式,其对应的XML格式也是不同的,这种格式如下(以下直接借用了网友的例子):
<?xml version="1.0" encoding="UTF-8"?> <persons> <student> <stu_name>hami</stu_name> <stu_age>15</stu_age> <stu_sex>男</stu_sex> </student> <teacher> <tea_name>alin</tea_name> <tea_age>16</tea_age> <tea_sex>女</tea_sex> </teacher> </persons> |
readXmlElement.cpp
#pragma comment(lib,"tinyxml.lib")
#include "tinyxml.h"
#include <iostream> #include <string>
#define TIXML_USE_STL
int main(void)
{ TiXmlDocument *personDoc = new TiXmlDocument; personDoc->LoadFile("test.xml");
TiXmlElement *personElement = personDoc->RootElement();
std::cout<<personElement->Value()<<std::endl;
TiXmlElement *student = personElement->FirstChildElement();
std::cout<<" "<<student->Value()<<std::endl;
TiXmlElement *nameElement = student->FirstChildElement();
std::cout<<" "<<nameElement->Value();//<<std::endl; //std::cout<<" "<<nameElement->GetText()<<std::endl;
TiXmlElement *ageElement = nameElement->NextSiblingElement();
std::cout<<" "<<ageElement->Value()<<std::endl;
TiXmlElement *sexElement = ageElement->NextSiblingElement();
std::cout<<" "<<sexElement->Value()<<std::endl;
TiXmlElement *teacher = student->NextSiblingElement();
std::cout<<" "<<teacher->Value()<<std::endl;
TiXmlElement *teaNameElement = teacher->FirstChildElement();
std::cout<<" "<<teaNameElement->Value()<<std::endl;
TiXmlElement *teaAgeElement = teaNameElement->NextSiblingElement();
std::cout<<" "<<teaAgeElement->Value()<<std::endl;
TiXmlElement *teaSexElement = teaAgeElement->NextSiblingElement();
std::cout<<" "<<teaSexElement->Value()<<std::endl;
return 0;
} |