xml.ftl 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0">
  6. <title>xml文本预览</title>
  7. <#include "*/commonHeader.ftl">
  8. <script src="js/jquery-3.6.1.min.js" type="text/javascript"></script>
  9. <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"/>
  10. <script src="bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
  11. <link rel="stylesheet" href="css/xmlTreeViewer.css"/>
  12. <script src="js/xmlTreeViewer.js" type="text/javascript"></script>
  13. <script src="js/base64.min.js" type="text/javascript"></script>
  14. </head>
  15. <body>
  16. <input hidden id="textData" value="${textData}"/>
  17. <div class="container">
  18. <div class="panel panel-default">
  19. <div id="xml_btn" class="panel-heading">
  20. <h4 class="panel-title">
  21. <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
  22. ${file.name}
  23. </a>
  24. </h4>
  25. </div>
  26. <div id="text_btn" class="panel-heading">
  27. <h4 class="panel-title">
  28. <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
  29. ${file.name}
  30. </a>
  31. </h4>
  32. </div>
  33. <div class="panel-body">
  34. <div id="xml"></div>
  35. </div>
  36. </div>
  37. </div>
  38. <script>
  39. /**
  40. * 初始化
  41. */
  42. window.onload = function () {
  43. $("#xml_btn").hide()
  44. initWaterMark();
  45. loadXmlData()
  46. }
  47. /**
  48. * 加载xml数据
  49. */
  50. function htmlEscape(str){
  51. var s = "";
  52. if(str.length == 0) return "";
  53. s = str.replace(/&amp;/g,"&");
  54. s = str.replace(/&amp;amp;/g,"&");
  55. s = s.replace(/&lt;/g,"<");
  56. s = s.replace(/&gt;/g,">");
  57. s = s.replace(/&nbsp;/g," ");
  58. s = s.replace(/&#39;/g,"\'");
  59. s = s.replace(/&quot;/g,"\"");
  60. s = s.replace(/<script.*?>.*?<\/script>/ig, '');
  61. s = s.replace(/<script/gi, "&lt;script ");
  62. s = s.replace(/<iframe/gi, "&lt;iframe ");
  63. return s;
  64. }
  65. function loadXmlData() {
  66. var textData = Base64.decode($("#textData").val())
  67. textData = htmlEscape(textData);
  68. window.textPreData = "<xmp style='background-color: #FFFFFF;overflow-y: scroll;border:none'>" + textData + "</xmp>";
  69. var xmlNode = xmlTreeViewer.parseXML(textData);
  70. window.retNode = xmlTreeViewer.getXMLViewerNode(xmlNode.xml);
  71. $("#xml").html(window.retNode);
  72. }
  73. $(function () {
  74. $("#xml_btn").click(function () {
  75. $("#xml").html(window.retNode);
  76. $("#text_btn").show()
  77. $("#xml_btn").hide()
  78. });
  79. $("#text_btn").click(function () {
  80. $("#xml_btn").show()
  81. $("#text_btn").hide();
  82. $("#xml").html(window.textPreData);
  83. });
  84. });
  85. </script>
  86. </body>
  87. </html>