如何以XML格式加载地图?

时间:2012-06-30 17:02:05

标签: javascript html5

我使用Tiled地图编辑器制作一个XML文件,其中的项目列为:

<data>
  <tile gid="1"/>
  <tile gid="2"/>
  <tile gid="2"/>
  <tile gid="1"/>
  <tile gid="1"/>
  <tile gid="3"/>
  <tile gid="3"/>
  <tile gid="1"/>
  <tile gid="2"/>
</data>

说这是一张3x3的地图。我如何将其解析为数组

[
  [1,2,2],
  [1,1,3],
  [3,1,2],
]

加载它更容易?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用JavaScript将其转换为使用此简单脚本的数组:

var xml = '<data><tile gid="1"/><tile gid="2"/> <tile gid="2"/><tile gid="1"/><tile gid="1"/><tile gid="3"/><tile gid="3"/><tile gid="1"/><tile gid="2"/></data>​​​​​​​​​​​​​​​​​​​​​​​​​​​​';

​var data = new DOMParser().parseFromString(xml, "text/xml").documentElement;

var tileNodes = data.querySelectorAll("tile");
var tiles = [];

for (var i = 0; i < tileNodes.length; i++) {
    var point = [];
    point.push(parseInt(tileNodes[i].getAttribute("gid"), 10));
    point.push(parseInt(tileNodes[++i].getAttribute("gid"), 10));
    point.push(parseInt(tileNodes[++i].getAttribute("gid"), 10));
    tiles.push(point);
}