-1

我正在尝试在我的项目的资源文件夹中解析一个 xml 文档。该项目是一个 cocos2D 项目,我正在尝试创建某种类型的方法来解析 xml 文件以加载我的游戏的关卡。

解析文档的最佳方法是什么?一个例子会很棒。

4

3 回答 3

1

你可以在 cocos2d 中使用任何 Objective-c XML 解析器,
我建议你使用TBXML
但不要在你xmlplist.

于 2012-12-20T19:06:09.570 回答
0

如果 1) 解析速度和 2) 从 xml 文件中检索数据的便利性很重要 3) 您不介意 C++ 接口,那么最适合您的解析器是开源的: http ://code.google.com/p /pugixml/

pugixml是一个轻量级的 C++ XML 处理库。它具有: • 具有丰富遍历/修改功能的类 DOM 接口 • 极快的非验证 XML 解析器,它从 XML 文件/缓冲区构造 DOM 树 • XPath 1.0 实现,用于复杂的数据驱动的树查询 • 使用 Unicode 完全支持 Unicode接口变体和自动编码转换 该库非常便携,易于集成和使用

我已经针对其他解析器测试了速度和内存使用情况,并使用了过去 5 年。文档在这里: http: //pugixml.googlecode.com/svn/tags/latest/docs/quickstart.html

于 2012-12-22T01:27:54.443 回答
0

即使帖子很旧,我也在这里写下解决方案,以帮助将来像我这样的其他人。解决方案很简单: - 第 1 步:使用 FileUtils 读取文件内容 - 第 2 步:将文件内容解析为 tinyxml2(支持我已尝试并成功在 cocos2d 3.8 中加载和读取 XML 文件

#include "tinyxml2/tinyxml2.h"

auto s = FileUtils::getInstance()->getStringFromFile("data.xml");
tinyxml2::XMLDocument *pDoc = new tinyxml2::XMLDocument();
tinyxml2::XMLError errorId = pDoc->Parse(s.c_str(), s.size());
if (errorId == 0) {
     // Write your code here
}

data.xml 放置在 Resource 文件夹中。

请阅读http://www.cocos2d-x.org/docs/manual/framework/native/v3/xml-parse/zhparse/zh了解如何迭代 tinyxml2 XMLDocument。请注意,您不能使用此链接中的教程从文件加载。它总是返回 ERROR_FILE_NOT_FOUND。

于 2015-12-21T09:06:19.120 回答