最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

代码分享js如何实现xml转json

来源:动视网 责编:小采 时间:2020-11-27 19:55:50
文档

代码分享js如何实现xml转json

代码分享js如何实现xml转json:本篇文章给大家分享的内容是js实现xml到json的转化,有着一定的参考价值,有需要的朋友可以参考一下<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js瀹炵幇xml
推荐度:
导读代码分享js如何实现xml转json:本篇文章给大家分享的内容是js实现xml到json的转化,有着一定的参考价值,有需要的朋友可以参考一下<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js瀹炵幇xml


本篇文章给大家分享的内容是js实现xml到json的转化,有着一定的参考价值,有需要的朋友可以参考一下

<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="UTF-8"> 
 <title>js瀹炵幇xml杞琷son</title> 
 <style type="text/css"> 
 html,body{width:100%;height:100%;margin:0;} 
 </style> 
</head> 
<body> 
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> 
<script type="text/javascript">
// Converts XML to JSON
// from: http://coursesweb.net/javascript/convert-xml-json-javascript_s2
function XMLtoJSON() {
 var me = this; // stores the object instantce
 // gets the content of an xml file and returns it in 
 me.fromFile = function(xml, rstr) {
 // Cretes a instantce of XMLHttpRequest object
 var xhttp = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
 // sets and sends the request for calling "xml"
 xhttp.open("GET", xml ,false);
 xhttp.send(null);
 // gets the JSON string
 var json_str = jsontoStr(setJsonObj(xhttp.responseXML));
 // sets and returns the JSON object, if "rstr" undefined (not passed), else, returns JSON string
 return (typeof(rstr) == 'undefined') ? JSON.parse(json_str) : json_str;
 }
 // returns XML DOM from string with xml content
 me.fromStr = function(xml, rstr) {
 // for non IE browsers
 if(window.DOMParser) {
 var getxml = new DOMParser();
 var xmlDoc = getxml.parseFromString(xml,"text/xml");
 }
 else {
 // for Internet Explorer
 var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
 xmlDoc.async = "false";
 }
 // gets the JSON string
 var json_str = jsontoStr(setJsonObj(xmlDoc));
 // sets and returns the JSON object, if "rstr" undefined (not passed), else, returns JSON string
 return (typeof(rstr) == 'undefined') ? JSON.parse(json_str) : json_str;
 }
 // receives XML DOM object, returns converted JSON object
 var setJsonObj = function(xml) {
 var js_obj = {};
 if (xml.nodeType == 1) {
 if (xml.attributes.length > 0) {
 js_obj["@attributes"] = {};
 for (var j = 0; j < xml.attributes.length; j++) {
 var attribute = xml.attributes.item(j);
 js_obj["@attributes"][attribute.nodeName] = attribute.value;
 }
 }
 } else if (xml.nodeType == 3) {
 js_obj = xml.nodeValue;
 } 
 if (xml.hasChildNodes()) {
 for (var i = 0; i < xml.childNodes.length; i++) {
 var item = xml.childNodes.item(i);
 var nodeName = item.nodeName;
 if (typeof(js_obj[nodeName]) == "undefined") {
 js_obj[nodeName] = setJsonObj(item);
 } else {
 if (typeof(js_obj[nodeName].push) == "undefined") {
 var old = js_obj[nodeName];
 js_obj[nodeName] = [];
 js_obj[nodeName].push(old);
 }
 js_obj[nodeName].push(setJsonObj(item));
 }
 }
 }
 return js_obj;
 }
 // converts JSON object to string (human readablle).
 // Removes '\t\r\n', rows with multiples '""', multiple empty rows, ' "",', and " ",; replace empty [] with ""
 var jsontoStr = function(js_obj) {
 var rejsn = JSON.stringify(js_obj, undefined, 2).replace(/(\\t|\\r|\\n)/g, '').replace(/"",[\n\t\r\s]+""[,]*/g, '').replace(/(\n[\t\s\r]*\n)/g, '').replace(/[\s\t]{2,}""[,]{0,1}/g, '').replace(/"[\s\t]{1,}"[,]{0,1}/g, '').replace(/\[[\t\s]*\]/g, '""');
 return (rejsn.indexOf('"parsererror": {') == -1) ? rejsn : 'Invalid XML format';
 }
};
// creates object instantce of XMLtoJSON
var xml2json = new XMLtoJSON();
</script>
<script type="text/javascript"> 
var xmlstr = `<alexa ver="0.9" url="http://coursesweb.net/" home="0" aid="=">
 <sd title="a" host="coursesweb.net">
 <title>CoursesWeb: php, mysql, html, css, javascript, ajax, jquery, actionscript, flash</title>
 <linksin num="1102"/>
 <speed pct="51">4578</speed>
 </sd>
 <sd>
 <popularity>5777</popularity>
 <reach rank="5952"/>
 <rank url="http://coursesweb.net/">6667</rank>
 </sd>
</alexa>`;
// gets JSON object from a string with xml content
var objson = xml2json.fromStr(xmlstr);
console.log(objson);
// gets JSON string from a string with xml content
var strjson = xml2json.fromStr(xmlstr, 'string');
console.log(strjson);
</script> 
</body> 
</html>

文档

代码分享js如何实现xml转json

代码分享js如何实现xml转json:本篇文章给大家分享的内容是js实现xml到json的转化,有着一定的参考价值,有需要的朋友可以参考一下<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js瀹炵幇xml
推荐度:
标签: 转换 分享 如何
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top