zoukankan      html  css  js  c++  java
  • cocos2dx3.0-tinyxml在Android环境下解析xml失败的问题

    本文由@呆代待殆原创,转载请注明出处。

    正常情况下,我们在用tinyxml读取xml文件的的时候,会像下面这样写。

    1 std::string filePath = FileUtils::getInstance()->getWritablePath() + fileName;//获取文件路径。
    2 XMLDocument *pDoc = new XMLDocument();//创建一个空的XMLDocument
    3 XMLError errorId = pDoc->LoadFile(filePath.c_str());//用XMLDocument来读取文件并进行解析,并接受返回值。
    4 if (errorId != 0) {
    5     //这个返回值为0时表示解析成功,其他值则表示出错。
    6     return;
    7 }
    8 XMLElement *rootEle = pDoc->RootElement();//获取根元素

    但是当我们把cocos2dx的工程移动到Android上时,我们的xml会被压缩到一个压缩文件中,这样,再调用上面的方法就会出错,所以我们可以采取一种曲线救国的方式来解决这个问题。

    1 XMLDocument pDoc;//创建一个空的XMLDocument。
    2 string content = FileUtils::getInstance()->getStringFromFile("test.xml");//先用FileUtils里的工具将文件内的内容读进内存。
    3 pDoc.Parse(content.c_str());//再直接解析内存里的内容,从而绕开了用tinyxml读取文件这一步
    4 XMLElement* root= pDoc.RootElement();//获取根元素
  • 相关阅读:
    高精度类模板
    NOIP2012 疫情控制
    NOIP2012 借教室
    Uva 长城守卫——1335
    Uva 网络(Network,Seoul 2007,LA 3902)
    oracle 中decode函数用法
    oracle数据库查询出多条数据,合并,之后列转行
    mysql中插入序列表
    mysql中创建event定时任务
    mysql 取得各种时间
  • 原文地址:https://www.cnblogs.com/coffeeSS/p/5396118.html
Copyright © 2011-2022 走看看