首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript完全错误地读取了XML

JavaScript完全错误地读取了XML
EN

Stack Overflow用户
提问于 2012-05-20 04:58:20
回答 1查看 80关注 0票数 0

我正在开发一个HTML5/Canvas游戏引擎,但我被卡住了。引擎通过平铺集绘制地图,并从XML文档中读取地图数据,如下所示:

代码语言:javascript
复制
<map>
    <layer id="-1">
        <row>0,0,0</row>
        <row>1,1,1</row>
        <row>0,0,0</row>
    </layer>

    <layer id="1">
        <row>0,0,0</row>
        <row>1,1,1</row>
        <row>0,0,0</row>
    </layer>
</map>

以及在二维数组中加载数据的JavaScript:

代码语言:javascript
复制
var layers = xml.getElementsByTagName("layer");
for(var i in layers)
{
    var rows = layers[i].childNodes;
    for(var j in rows)
    {
        array[i][j] = rows[j].nodeValue;
    }   
}

问题:返回的数据只是"null“、"”和"undefined“的混搭。此外,数组似乎比必要的小,因为在遍历所有值之前,我检查了节点的数量(使用length属性),并且它总是比实际的节点数量多。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-20 05:06:19

  1. 使用textContent而不是nodeValue。前者返回正确的值,比如"0,0,0".
  2. Since文本节点也是子节点,您应该跳过它们(检查节点的nodeType)。它们在你的数组中填满了空洞,使它们变得比需要的更大。文本节点基本上是缩进的空格。解决这个问题需要额外的计数器。
  3. 使用普通的for循环,而不是for in循环。

http://jsfiddle.net/DhKJr/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10668829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档