XML代码创建及其解析

#include <tinyxml2/tinyxml2.h>

using namespace tinyxml2;




// 创建文档对象
   
auto myTinyXMLDoc = new XMLDocument ();
   
   
// 创建根节点并连接到文档
   
auto rootElement = myTinyXMLDoc-> NewElement ( "information" );
    myTinyXMLDoc->
LinkEndChild (rootElement);
   
   
// 创建 student 节点 并连接到根节点
   
auto stuElement = myTinyXMLDoc-> NewElement ( "student" );
    rootElement->
LinkEndChild (stuElement);
   
   
// 创建 person 节点 并连接到 student 节点
   
auto personElement = myTinyXMLDoc-> NewElement ( "person" );
    stuElement->
LinkEndChild (personElement);
   
   
// person 节点设置属性
    personElement->
SetAttribute ( "id" , "123" );
   
   
   
   
// 创建 name 节点 并连接到 person 节点
   
auto nameElement = myTinyXMLDoc-> NewElement ( "name" );
    personElement->
LinkEndChild (nameElement);
   
   
// name 节点添加文本值
   
auto nameText = myTinyXMLDoc-> NewText ( "zhangsan" );
    nameElement->
LinkEndChild (nameText);
   
   
// 创建 sex 节点 并连接到 person 节点
   
auto sexElement = myTinyXMLDoc-> NewElement ( "sex" );
    personElement->
LinkEndChild (sexElement);
   
   
// sex 节点添加文本值
   
auto sexText = myTinyXMLDoc-> NewText ( "male" );
    sexElement->
LinkEndChild (sexText);
   
   
// 保存 XML
    myTinyXMLDoc->
SaveFile ( FileUtils :: getInstance ()-> fullPathForFilename ( "stuInfo.xml" ). c_str ());
   
   
// 打印 XML
    myTinyXMLDoc->
Print ();
   
// 删除 myTinyXMLDoc 对象
    delete myTinyXMLDoc;
   



cocos2d: fullPathForFilename: No file found at stuInfo.xml. Possible missing file.
<information>
    <student>
        <person id="123">
            <name>zhangsan</name>
            <sex>male</sex>
        </person>
    </student>
</information>



第二部分解析:

auto myTinyXMLDoc = new XMLDocument ();
 
    myTinyXMLDoc->
Parse ( FileUtils :: getInstance ()-> getStringFromFile ( "stuInfo.xml" ). c_str ());
   
   
// 或者
//    auto myTinyXMLDoc = new XMLDocument(FileUtils::getInstance()->fullPathForFilename("stuInfo.xml").c_str());
//    myTinyXMLDoc->LoadFile(FileUtils::getInstance()->fullPathForFilename("stuInfo.xml").c_str());
 
   
// 获取根节点
   
auto rootElement = myTinyXMLDoc-> RootElement ();
   
   
// 获取 student 节点
   
auto stuElement = rootElement-> FirstChildElement ();
   
   
   
// 获取 person 节点
   
auto personElement = stuElement-> FirstChildElement ();
   
   
while (personElement) {
       
// 获取 student 的属性
       
auto attributeInfo = personElement-> FirstAttribute ();
       
while (attributeInfo) {
           
// 获取所有属性
           
CCLOG ( "%s: %s:" ,attributeInfo-> Name (),attributeInfo-> Value ());
            attributeInfo = attributeInfo->
Next ();
           
        }

       
// 获取 name
       
auto nameElement = personElement-> FirstChildElement ();
       
CCLOG ( "name: %s" ,nameElement-> GetText ());
       
       
// 获取 sex
       
auto sexElement = nameElement-> NextSiblingElement ();
       
CCLOG ( "sex: %s" ,sexElement-> GetText ());


       
// 查找下一节点
        personElement = personElement->
NextSiblingElement ();
       
    }
   
   
   
// 删除 myTinyXMLDoc 对象
   
delete myTinyXMLDoc;




创建xml文件:New File—other—Empty 输入 文件名.xml



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值