繁体   English   中英

无法在html的XML输出中打印<>括号

[英]Not able to print <> brackets in XML output in html

因此,这是关于我以前的问题之一,在这里我想用JS在HTML中用“ br”标记替换“ \\ n”。 对于同一页面,如果有人通过XML或RPC查询,我想返回XML输出。

典型的XML输出如下所示:

<racks>\n
<rack>\n
<rack-name>0</rack-name>\n
<chassis>\n
<serial-number>XYZ789</serial-number>\n
</chassis>\n
</rack>\n
</racks>\n
</diag>\n
</data>\n
</rpc-reply>\n

**我希望能够以这种方式打印它:(用br代替\\ n)

<racks>
<rack>
<rack-name>0</rack-name>
<chassis>
<serial-number>XYZ789</serial-number>
</chassis>
</rack>
</racks>
</diag>
</data>
</rpc-reply>

**

但是我只在输出中得到纯文本,它是0和XYZ789,具有太多\\ n。

JS:

$(function() {
  $('button').click(function() {
    $.ajax({
      url: '/runCommand_query',
      data: $('form').serialize(),
      type: 'POST',
      success: function(response) {
        response = response.replace(/(\n)/g, "<br>");
        console.log(response);
        $("#opt").html(response);
      },
      error: function(error) {
        console.log(error);
        $("#opt").val(error);
      }
    });
  });
});

您应该使用text()而不是html()例如:

$("#opt").text(response);

否则,浏览器会将代码解释为HTML标记,并仅向您显示文本。

希望这可以帮助。

更新:

 var response = "<racks>\\n<rack>\\n<rack-name>0</rack-name>\\n<chassis>\\n<serial-number>XYZ789</serial-number>\\n</chassis>\\n</rack>\\n</racks>\\n</diag>\\n</data>\\n</rpc-reply>\\n"; $('#opt').text(response).wrap('<pre />'); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="opt"></div> 

只需稍微调整Zakaria Acharki的答案即可根据我的要求获得最终结果: response = response.replace(/</g, "&lt;").replace(/>/g,"&gt;").replace(/(\\n)/g,"<br>");

暂无
暂无

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

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