Javascript格式化并高亮xml字符串的方法及注意事项

2018-10-15 17:02

阅读:558

两个关键点

1.使用DOMParser解析xml
2.递归遍历xml树,按格式输出每一个节点

关于使用DOMParser

此方法目前在IE9以上和其它浏览器里都是支持的,所以这里不在写关于IE9以下不支持的情况, 具体的使用请跳转

Javascript代码

/** * 格式化xml * @param content * @returns {*} */ this.parse_xml = function(content) { let xml_doc = null; try { xml_doc = (new DOMParser()).parseFromString(content.replace(/[\n\r]/g, ), text/xml); } catch (e) { return false; } function build_xml(index, list, element) { let t = []; for (let i = 0; i < index; i++) { t.push(); } t = t.join(); list.push(t + <<span class=code-key>+ element.nodeName +</span>>\n); for (let i = 0; i < element.childNodes.length; i++) { let nodeName = element.childNodes[i].nodeName; if (element.childNodes[i].childNodes.length === 1) { let value = element.childNodes[i].childNodes[0].nodeValue; let value_color = !isNaN(Number(value)) ? code-number : code-string; let value_txt = <span class=+ value_color +> + value + </span>; let item = t + <<span class=code-key> + nodeName + </span>> + value_txt + </<span class=code-key> + nodeName + </span>>\n; list.push(item); } else { build_xml(++index, list, element.childNodes[i]); } } list.push(t + </<span class=code-key>+ element.nodeName +</span>>\n); } let list = []; build_xml(0, list, xml_doc.documentElement); return list.join(); };

css

效果

注意

DOMParser在解析xml时,如果xml字符串里有些特殊的字符,解出来的树节点有些是不需要的,会倒置遍历节点失败。

总结

以上所述是小编给大家介绍的Javascript格式化并高亮xml字符串,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!


评论


亲,登录后才可以留言!