Загрузка XML через JQuery - оперируйте несколькими результатами - PullRequest
0 голосов
/ 18 февраля 2019

Я использую AJAX для загрузки XML-файла в HTML-div.Мой XML выглядит следующим образом:

<Incidents>
  <Incident id="123">
    <ModTime>2016-01-23T08:00:00Z</ModTime>
    <comments>comments here</comments>
    <currentUpdate>update</currentUpdate>
    <status>Active</status>
  </incident>
  <Incidents>
    <Incident id="456">
      <ModTime>2016-01-23T08:00:00Z</ModTime>
      <comments>comments here</comments>
      <currentUpdate>update</currentUpdate>
      <status>Active</status>
    </incident>
//<![CDATA[
$.ajax({
  type: "GET",
  url: "feed.xml",
  dataType: "xml",
  success: function(xml) {
    $('#table').append('<h2>XML</h2>'); 
    $('#table').append('<table id="show_table" border="1" >'); 
    $(xml).find('Incident').each(function() {
      var $feed = $(this);
      var id = $feed.attr("id");
      var mod = $feed.find('ModTime').text();
      var comments = $feed.find('comments').text();
      var update = $feed.find('currentUpdate').text();
      var status = $feed.find('status').text();
      var html = ' <tr><td >' + id + '</td><td >' + mod + '<br>' + comments     + '</td><td>' + update + '</td><td>'  + status +'</td><td > </tr>';
      $('#show_table').append(html);
    });
  }  
});

, который работает нормально большую часть времени, однако иногда инциденты в XML будут иметь два раздела комментариев.

<Incidents>
  <Incident id="123">
    <ModTime>2016-01-23T08:00:00Z</ModTime>
    <comments>comments here</comments>
    <currentUpdate>update</currentUpdate>
    <status>Active</status>
  </incident>
  <Incidents>
    <Incident id="456">
      <ModTime>2016-01-23T08:00:00Z</ModTime>
      <comments>comments here</comments>
      <comments>comments another comment</comments>
      <currentUpdate>update</currentUpdate>
      <status>Active</status>
    </incident>

Когда это происходитЯ хочу отделить их, но не могу понять, как?

Сначала я попытался добавить разрыв строки в таблицу, но понял, что уже слишком поздно, поскольку я уже получил данные.

Затем я попытался добавить разрыв, когда я нашел комментарии, но это также не сработало - он просто добавил разрыв в конце

var comments = $feed.find('comments').text() + '<br>';

...