如何使用JavaScript或JQuery打印XML内容

时间:2018-06-27 20:34:25

标签: javascript jquery xml

我正在尝试使用jQuery在表中打印XML内容。在表中为空白。

data[i].xml_details包含XML内容。尝试在表格中打印时出现空白显示。其中console.log('XML Details' + data[i].xml_details);打印XML内容没有任何问题。

success: function(data) {
  // remove all Row items in table, before adding new rows
  $('table.others_list tbody tr').remove();
  for (var i in data) {
    var xml = $.parseXML(data[i].xml_details);
    var newRow = jQuery('<tr><td class="col-sm-2"> <div>' +
      data[i].request_type +
      '</div> </td> <td style="display:none;">' +
      data[i].rels_others_id +
      '</td>' +
      '<td class="col-sm-2">' +
      data[i].xml_details +
      '</td>' +
      ' <td class="col-sm-2">' + data[i].request_details + '</td>' +
      ' <td class="col-sm-1">' +
      '<a href="#"  class="delete-esb" onclick="deleteOthersRow(this);">' +
      '<i class="fa fa-trash-o" "> </i> </a>' +
      '</td></tr>');
    jQuery('table.others_list').append(newRow);
    console.log('XML Details' + data[i].xml_details);
  }

1 个答案:

答案 0 :(得分:0)

从解析的XML数据中提取文本内容。然后构造文本字符串并将其插入到表中。

for (var i in data) {
    var xml = $.parseXML(data[i].xml_details);

    var xmlContent = [];
    // Search for the title and content of xml tags
    $(xml).find('*').each(function(){
        if ($(this).children().length == 0) {
            xmlContent.push($(this).prop("tagName") + ': ' + $(this).text());
        }
    });
    var textString = xmlContent.join(', ');

    var newRow = jQuery('<tr><td class="col-sm-2"> <div>' +
        data[i].request_type +
        '</div> </td> <td style="display:none;">' +
        data[i].rels_others_id +
        '</td>' +
        '<td class="col-sm-2">' +
        textString +
        '</td>' +
        ' <td class="col-sm-2">' + data[i].request_details + '</td>' +
        ' <td class="col-sm-1">' +
        '<a href="#"  class="delete-esb" onclick="deleteOthersRow(this);">' +
        '<i class="fa fa-trash-o" "> </i> </a>' +
        '</td></tr>');
    jQuery('table.others_list').append(newRow);
    console.log('XML Details' + data[i].xml_details);
}

第二个变体。要按原样打印XML字符串,请将data [i] .xml_details中的特殊HTML字符替换为它们的&命名等效项:

function escapeHtml(text) {
  return text
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;");
}

...

for (var i in data) {
    var xml = $.parseXML(data[i].xml_details);
    var newRow = jQuery('<tr><td class="col-sm-2"> <div>' +
        data[i].request_type +
        '</div> </td> <td style="display:none;">' +
        data[i].rels_others_id +
        '</td>' +
        '<td class="col-sm-2">' +
        escapeHtml(data[i].xml_details) +
        '</td>' +
        ' <td class="col-sm-2">' + data[i].request_details + '</td>' +
        ' <td class="col-sm-1">' +
        '<a href="#"  class="delete-esb" onclick="deleteOthersRow(this);">' +
        '<i class="fa fa-trash-o" "> </i> </a>' +
        '</td></tr>');
    jQuery('table.others_list').append(newRow);
    console.log('XML Details' + data[i].xml_details);
}