繁体   English   中英

如何在 JavaScript 中解析 XML

[英]How to parse XML in JavaScript

https://jsfiddle.net/recklesswish/6yw1tdwh/5/以下链接包含 JSON,我已将这个特定的 JSON 转换为 XML。 现在的问题是我不知道如何使用 javascript 解析它。 这是xml,JSON resp的代码。 XML

var carsData = "<cars>
  "<Honda>"
    "<model>Figo</model>"
  "</Honda>"
  "<Honda>"
    "<model>City</model>"
  "</Honda>"
  "<Audi>"
    "<model>A6</model>"
  "</Audi>"
  "<Audi>"
    "<model>A8</model>"
  "</Audi>"
"</cars>"

JSON

var carsData = '{"cars":{"Honda":[{"model":"Figo"},{"model":"City"}],"Audi":[{"model":"A6"},{"model":"A8"}]}}';

$('#newCollection').on('click', function() {
  $(this).empty(); 
  var data = JSON.parse(carsData);
  $(this).append('New Collection<ul></ul>');

  for (var make in data.cars) {
    for (var i = 0; i < data.cars[make].length; i++) {
      var model = data.cars[make][i].model;
      $(this).find('ul').append('<li>' + make + ' - ' + model + '</li>')
    }
  }
});

使用 HTML

<ul>
  <li id="newCollection">New Collection</li>
</ul>

首先让你的 xml 在 javascript 中看起来像这样 -

var carsData = "<cars><Honda><model>Figo</model></Honda><Honda><model>City</model> </Honda><Audi><model>A6</model></Audi><Audi><model>A8</model></Audi></cars>"

你的 JS 代码看起来像这样 -

$('#newCollection').on('click', function() {
                        $(carsData).find("Honda").each(function() {
                            var model = $(this).find("model").text();
                            console.log("model: " + model );
                        });
                    });

newCollection 是按钮的 id。 这将打印模型如下-

model: Figo
model: City

我建议您先学习基础知识,而不是尝试直接进行编码。 从长远来看,清晰的基础将使您成为一名优秀的编码员:)

我知道了。 使用下面的代码来实现你想要的 -

<body> <h1>Hello</h1> <button type="button" id="newCollection">Click Me!</button> <ul id="myul"></ul> </body>

你的 JS 代码应该是 -

$('#newCollection').on('click', function() {

    var data = $($.parseXML(carsData));                         
    data.find('cars').children().each(function() { 
    var make = $(this).find("model").text();
    $('#myul').append('<li>'+make+'</li>'); 
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM