使用xml文件初始化javascript程序

时间:2015-05-28 09:19:17

标签: javascript xml xml-parsing

我正在编写一个使用xml文件作为地图,玩家等的起始值的游戏。 我想要一个从xml文件初始化游戏的简单方法。 我的xml是:

<save>
  <player>
    <name> "martin" </name>
    <coins> 100 </coins>
    <hp> 15 </hp>
  </player>
  <map>
    <height> 5 </height>
    <width> 5 </width>
  </map>
</save>

我希望javascript代码输出(到我的游戏文件的顶部)

var player = {
    name:"martin";
    coins:100;
    hp:15;
}
var map = [[[],[],[],[],[]],
[[],[],[],[],[]],
[[],[],[],[],[]],
[[],[],[],[],[]],
[[],[],[],[],[]] // although not formatted this way

所以我基本上想要将数据从xml加载到对象和数组中。 然后我可以做一些事情,比如使用javascript的内置函数更改播放器的hp。 谢谢, 马丁

1 个答案:

答案 0 :(得分:1)

使用JSON执行此操作要容易得多。您可以使用AJAX加载JSON文件并设置值;这是一个例子。

JavaScript文件(例如script.js):

var player = {
  name: "martin",
  coins: 100,
  hp: 15
}

var map =
[[[], [], [], [], []],
 [[], [], [], [], []],
 [[], [], [], [], []],
 [[], [], [], [], []],
 [[], [], [], [], []]];

var request = new XMLHttpRequest();

request.onstatechange = function () {
  var data;
  if (request.readyState === 4 && request.status === 200) {
    data = JSON.parse(request.responseText);
    player = data.player;
    map = data.map;
  }
}

request.open("GET", "data.json");
request.send();

JSON数据(例如data.json):

{
  "player": {
    "name": "martin",
    "coins": 100,
    "hp": 15
  },

  "map":
  [[[], [], [], [], []],
   [[], [], [], [], []],
   [[], [], [], [], []],
   [[], [], [], [], []],
   [[], [], [], [], []]]
}

为此,您需要在服务器上运行代码,如果您在本地开发,可以使用Python执行代码:

$ cd path/to/directory
$ python3 -m http.server

然后只需在网络浏览器中打开IP地址(使用正确的端口)。