VUE实现XML高亮和格式化

  1. 首先在公用方法中写入下面的方法,我这里是src/utils/index.js
export function parse_xml(content) {
  let xml_doc = null
  try {
    xml_doc = (new DOMParser()).parseFromString(content.replace(/[\n\r\s]/g, ''), 'text/xml')
  } catch (e) {
    return false
  }
  let flag = 0

  function build_xml(index, list, element) {
    let t = []
    for (let i = 0; i < flag; i++) {
      t.push('    ')
    }
    t = t.join('')
    list.push(t + '<' + element.nodeName + '>
') for (let i = 0; i < element.childNodes.length; i++) { const nodeName = element.childNodes[i].nodeName if (element.childNodes[i].childNodes.length === 0) { const value_txt = '' const item = t + '    <' + nodeName + '>' + value_txt + '</' + nodeName + '>
' list.push(item) } else if ((element.childNodes[i].childNodes.length === 1 && element.childNodes[i].childNodes[0].nodeValue != null)) { const value = element.childNodes[i].childNodes[0].nodeValue const value_color = !isNaN(Number(value)) ? 'code-number' : 'code-string' const value_txt = '' + value + '' const item = t + '    <' + nodeName + '>' + value_txt + '</' + nodeName + '>
' list.push(item) } else { flag++ build_xml(++index, list, element.childNodes[i]) flag-- } } list.push(t + '</' + element.nodeName + '>
') } const list = [] build_xml(0, list, xml_doc.documentElement) return list.join('') }
  1. 在需要进行XML高亮文件中导入
    import { parse_xml } from '@/utils'

  2. 给对应的参数赋值 this.formatData = parse_xml(xml)

  3. 最后在template中写入

  4. 样式中加入下面的代码

      
    
  5. 最后的效果如下
    VUE实现XML高亮和格式化_第1张图片

你可能感兴趣的:(小技巧,前端,VUE,VUE)