首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Javascript中循环使用XML

在Javascript中循环使用XML
EN

Stack Overflow用户
提问于 2015-04-05 20:26:37
回答 1查看 2.4K关注 0票数 1

由于某种原因,我想不出如何循环这个xml。我可以从第一个父节点和它下面的子节点获取数据,但是不能让它转到第二个父节点。任何帮助都会很好。我在用xmlReader。

代码语言:javascript
复制
function saveData(dataObject) {
        var GameData = Parse.Object.extend("AllGameData");
        var GameData = new GameData();

        dataObject.forEach(function (element, i) {
            GameData.set(element.name, element.data);
        });
        GameData.save();
    }    
Parse.Cloud.httpRequest({
url: xmlURL,
success: function (httpResponse) {
    var counter = 0;
    xmlreader.read(httpResponse.text, function (err, xmldata) {

        var state = xmldata.allcrosswords.StateCrossword.count();

        for(var y = 0; y < state.length; y++) {
            xmldata.allcrosswords.array[y].StateCrossword.array.forEach(function (element, i) {
                xmldata.allcrosswords.StateCrossword.array[i].game.array.forEach(function (element, j) {


                    saveData(data);
                    counter++;
                });
            });

        }
        status.success("" + counter + " row(s) inserted.");
    });
},
error: function (httpResponse) {
    status.error('Request failed with response code ' + httpResponse.status);
}

});

XML如下:

代码语言:javascript
复制
<allcrosswords>
  <StateCrossword UserId="223943">
    <game game_name="History CrossWord">
      <crossword_date_played>02/01/2014</crossword_date_played>
      <words_wrong>2</words_wrong>
      <total_score>110</total_score>
    </game>
  </StateCrossword>
  <StateCrossword StateCrossword UserId="4894734">
    <game game_name="Sports Crossword">
      <crossword_date_played>04/16/2015</crossword_date_played>
      <words_wrong>10</words_wrong>
      <total_score>12</total_score>
    </game>
  </StateCrossword>
  <StateCrossword StateCrossword UserId="6092735">
    <game game_name="Movies Crossword">
      <crossword_date_played>08/04/2014</crossword_date_played>
      <words_wrong>12</words_wrong>
      <total_score>0</total_score>
    </game>
  </StateCrossword>
</allcrosswords>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-06 00:21:10

我试图解析您的xml文件,发现我可以在浏览器中加载它,所以当我检查它时,我在第二个和第三个StateCrossword元素中发现了一个问题,下面是更新xml文件

代码语言:javascript
复制
<allcrosswords>
  <StateCrossword UserId="223943">
    <game game_name="History CrossWord">
      <crossword_date_played>02/01/2014</crossword_date_played>
      <words_wrong>2</words_wrong>
      <total_score>110</total_score>
    </game>
  </StateCrossword>
  <StateCrossword UserId="4894734">
    <game game_name="Sports Crossword">
      <crossword_date_played>04/16/2015</crossword_date_played>
      <words_wrong>10</words_wrong>
      <total_score>12</total_score>
    </game>
  </StateCrossword>
  <StateCrossword UserId="6092735">
    <game game_name="Movies Crossword">
      <crossword_date_played>08/04/2014</crossword_date_played>
      <words_wrong>12</words_wrong>
      <total_score>0</total_score>
    </game>
  </StateCrossword>
</allcrosswords>

我试着用JQuery javascript解析它,

代码语言:javascript
复制
$.ajax({
      type: "GET",
      url: "test.xml",
      dataType: "xml",
      success: function(data)
      {
        var StateCrosswords = data.getElementsByTagName("StateCrossword");
        for (var i=0; i < StateCrosswords.length; i++)
        {
          var  game = StateCrosswords.item(i).getElementsByTagName("game")[0];
          .............
        }
      }
    }); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29461865

复制
相关文章

相似问题

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