您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x中详解tinyXml来解析xml(超级入门版)(object向c++转型系列教程4)

2012-10-05 16:35 405 查看
网上很多tinyXml教程都不详细。今天自己研究了 一下xml的解析。把研究的结果拿出来分享一下。



首先我先把tinyxml解析的文件放入dbank网盘里面了。大家可以下载下来放入项目中用。如果过期了,请在下面留言。

tinyXml下载地址: http://dl.vmall.com/c0g1jkrc0y
现在我们来解析下面xml文件

<Root>

<Person ID="1">

<name>周星星</name>

<age>20</age>

</Person>

<Person ID="2">

<name>白晶晶</name>

<age>18</age>

</Person>

<Other ID="6">
<name>bitch</name>

<age>16</age>

</Other>

</Root>

这个xml文件里在<Root>下面有三个子标签。
2,其中前两个标签都为<Person>而第三个标签为<Other>标签。
3,然后这三个子标签都有自己的属性 ID="">
4,三个标签下面都有两个子标签<name>,和<age>

有两种方法来读取我们要的标签;现在我们先用第一种正规的方法来读取(后面会用另外一种简单的方法来读取)

//创建一个XML的文档对象。

TiXmlDocument *myDocument = new TiXmlDocument(CCFileUtils::fullPathFromRelativePath("WordList3.xml"));
myDocument->LoadFile();

//获得根元素,即Persons。
TiXmlElement *RootElement = myDocument->RootElement();

//输出根元素名称,即输出Persons。


cout << RootElement->Value() << endl;

//获得第一个Person节点。
TiXmlElement *FirstPerson = RootElement->FirstChildElement();

//获得第一个Person的name节点和age节点和ID属性。
TiXmlElement *NameElement = FirstPerson->FirstChildElement();
TiXmlElement *AgeElement = NameElement->NextSiblingElement();
TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();

//输出第一个Person的name内容,即周星星;age内容,即20;ID属性,即1。
cout << NameElement->FirstChild()->Value()
<< endl;
cout << AgeElement->FirstChild()->Value()
<< endl;
cout << IDAttribute->Value() << endl;

第二种方法:简单的方法(我们来读取第二个<Person ID="2">标签下的

<name>白晶晶</name>

<age>18</age>


TiXmlDocument* xmlDoc = new TiXmlDocument(CCFileUtils::fullPathFromRelativePath("WordList3.xml"));
xmlDoc->LoadFile();
TiXmlElement* rootElement = xmlDoc->RootElement();
CCLog("%s", rootElement->Value());
TiXmlElement* firstElement = rootElement->FirstChildElement();
TiXmlElement* element0 = firstElement->NextSiblingElement();
TiXmlElement* element1 = element0->FirstChildElement();
TiXmlElement* element2 = element1->NextSiblingElement();
CCLog("firstElement:%s secondElement:%s", element1->GetText(),
element2->GetText());
delete xmlDoc;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐