javascript - 无法使用highlight.js 以正确的顺序呈现 XML

标签 javascript html underscore.js highlightjs

我正在尝试使用highlight.js 突出显示XML。

这里是示例 codepen link

但是我面临两个问题:

  1. 自闭合元素呈现为非自闭合标签,即上例中的作者元素。
  2. XML 编码属性也未得到渲染。

我尝试实现转义方法,用/> 替换“/>”,但它没有按预期方式工作。

示例:预期的 XML

<?xml version="1.0"?>
<catalog>
  <book id="bk112">
     <author id="1"/>
     <title>Visual Studio 7: A Comprehensive Guide</title>         
  </book>
</catalog>

实际 XML

  <catalog>
   <book id="bk112">
     <author id="1">
     <title>Visual Studio 7: A Comprehensive Guide</title>       
    </author>
   </book>
  </catalog>

有没有办法纠正这种行为。

最佳答案

在这种情况下,code 标记会解析 HTML。为避免您可以使用 textarea

(function() {
  var el = document.querySelector(".xml"),
    pre = document.querySelector("pre");

  pre.innerText = el.value;
  hljs.highlightBlock(pre);
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/highlight.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/styles/vs.min.css" rel="stylesheet"/>

<div hidden>
  <textarea class="xml">
    <?xml version="1.0"?>
    <catalog>
      <book id="bk112">
         <author id="1"/>
         <title>Visual Studio 7: A Comprehensive Guide</title>

      </book>
    </catalog>
  </textarea>
</div>

<pre></pre>

关于javascript - 无法使用highlight.js 以正确的顺序呈现 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59333061/

相关文章:

javascript - 在 JavaScript 中生成随机数并将其传递给 HTML 输入标记

html - CSS 文件未在 IE 10 和 Google Chrome 上加载

javascript - 如何使用名称选择器选择选中复选框的长度

javascript - 在 MongoDB 中使用聚合框架按时间戳分组

jquery - IBM Worklight 6.1 - Uncaught ReferenceError : WLJQ is not defined, WL 未定义

javascript - 为数组的每一项添加额外的属性

javascript - 上传图像并使用 JQuery 将其附加到正文

javascript - 未捕获的类型错误 : Failed to resolve module specifier "fs". 相对引用必须以 "/"、 "./"或 "../"开头

javascript - 在 html2canvas 中将透明颜色更改为白色

javascript - 不可能在一个页面中使用两次 JavaScript