Javascript—将XML加载到多维数组中

Javascript—将XML加载到多维数组中,javascript,xml,html,Javascript,Xml,Html,我一直在用HTML5和javascript创建一个游戏,但遇到了一个问题 游戏使用一个平铺系统来加载地图。当前我的地图保存在多维数组中,如下所示: var map = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 3, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],

我一直在用HTML5和javascript创建一个游戏,但遇到了一个问题

游戏使用一个平铺系统来加载地图。当前我的地图保存在多维数组中,如下所示:

var map = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
            [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
<TileMaps>
<Level level="1">
<map>[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 3, 0, 0, 0, 0, 2, 4, 0, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
</map>
</Level>
<Level level="2">
<map>[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
</map>
</Level>
</TileMaps>
我想通过使用XML文件来更新数组来添加移动级别

我的XML文件当前如下所示:

var map = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
            [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
<TileMaps>
<Level level="1">
<map>[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 3, 0, 0, 0, 0, 2, 4, 0, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
</map>
</Level>
<Level level="2">
<map>[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
</map>
</Level>
</TileMaps>

[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 3, 0, 0, 0, 0, 2, 4, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
[  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
[1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
[1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
[1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
[1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
如果有人能帮我把level=“1”加载到map变量中,那就太好了


谢谢不要使用xml,请使用json。这里有一个链接,它是关于什么的

虽然不完全精确,但将json视为javascript的一个子集是相当安全的

例如:

{
    "levels":[ 
        [    
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
            [1, 3, 0, 0, 0, 0, 2, 4, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        ],


        [
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
            [1, 3, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 2, 0, 4, 1],
            [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
        ]
    ]
}

用于验证json。

对于任何想知道的人,我使用以下代码修复了此问题:

req=new XMLHttpRequest();
req.open("GET","my.xml",false);
req.send();
xmlDoc = req.responseXML;
map = JSON.parse(xmlDoc.getElementsByTagName('map')[0].firstChild.nodeValue);

我认为您应该对地图进行抽象,以便它更适合您的xml(而不是仅仅将其放入)。使用json也可能是一个好主意,它将为您节省一些使用xml解析库或手动解析xml的工作。可能重复@helmus什么是json?它容易使用吗?好的,那么我在哪里保存这个Json代码呢?您可以将其保存在类似XML的文件中,还是必须放在HTML页面中?还有,我如何使用这段代码将信息添加到数组中?完全忘记xml。它在这个问题上没有立足之地。JSON可以通过几种不同的方式传递到浏览器。您应该注意的第一件事是,我给您的示例是一个语法正确的javascript文本对象。如果要将其直接包含在页面中,请将其放入脚本标记中,并将其分配给变量。您还可以通过ajax请求或JSONP请求加载它。我建议您从游戏中退一步,阅读更多关于json本身的内容。你也可以使用像jQuery这样的库,它有很好的处理JSON请求的处理程序。谢谢你向我解释,我唯一的问题是我需要在今天结束之前完成这个原型。我真的没有太多时间来读这篇文章。你能不能给我一个关于我到底需要做什么的简要说明,或者提供一些示例代码,这样我就可以了解它了?