我正在开发一个 Cocos2dx C++ 项目,我正在尝试加载一个 XML 文件并用 rapidxml 解析它。
Win32 构建与此代码配合得很好。
rapidxml::file<> xmlFile("myxml.xml");
xml_document<> doc; // character type defaults to char
doc.parse<0>(xmlFile.data()); // 0 means default parse flags
xml_node<> *main = doc.first_node(); //Get the main node that contains everything
这不适用于 Android 版本。这很可能是因为找不到“myxml.xml”。所以我的解决方案是以不同的方式加载文件。
所以我试图用这个替换 xmlFile.data() 。手机现在可以定位和读取数据,但我无法通过 rapidxml 解析它。
const unsigned char* xmldata = CCFileUtils::sharedFileUtils()->getFileData("myxml.xml", "r", &tmpSize);
但后来我不知道如何解析它。
这是获取数据的另一种方式,但仍然不知道如何使用 rapidxml 进行解析。
std::string xmldata2 = CCFileUtils::sharedFileUtils()->getStringFromFile("myxml.xml");
任何想法如何在 rapidxml 中解析它,或任何其他建议如何解决这个问题?
我是 C++ 新手,所以非常感谢任何帮助。