首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用JavaScript或JQuery打印XML内容

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

Stack Overflow用户
提问于 2018-06-28 04:34:25
回答 1查看 77关注 0票数 0

我正在尝试使用jQuery在表中打印XML内容。这在表格中是空白的。

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

代码语言:javascript
复制
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);
  }
EN

回答 1

Stack Overflow用户

发布于 2018-06-28 05:07:44

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

代码语言:javascript
复制
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字符串,请将datai.xml_details中的特殊超文本标记语言字符替换为其&命名等效项:

代码语言:javascript
复制
function escapeHtml(text) {
  return text
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;");
}

..。

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51071003

复制
相关文章

相似问题

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