js压缩xml字符串,将xml字符串转换为xml对象,将xml对象转换为json对象

/**
 * 压缩xml字符串
 */
function compressXmlStr(str){
	var prefix, suffix;
	var i = str.indexOf("\r");
	while(i > -1){
		prefix = str.substring(0, i);
		suffix = $.trim(str.substring(i, str.length));
		str = prefix + suffix;
		i = str.indexOf("\r");
	}
	i = str.indexOf("\n");
	while(i > -1){
		prefix = str.substring(0, i);
		suffix = $.trim(str.substring(i, str.length));
		str = prefix + suffix;
		i = str.indexOf("\n");
	}
	return str;
}
/**
 * 将xml字符串转换为xml对象
 */
function stringToXml(xmlString) {
	var xmlDoc;
	if (typeof xmlString == "string") {
		if (document.implementation.createDocument) {
			var parser = new DOMParser();
			xmlDoc = parser.parseFromString(xmlString, "text/xml");
		} else if (window.ActiveXObject) {
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = false;
			xmlDoc.loadXML(xmlString);
		}
	} else {
		xmlDoc = xmlString;
	}
	return xmlDoc;
}
/**
 * 将xml对象转换为json对象
 */
function xmlToJson(xml){
	// Create the return object
	var obj = {};
	if (xml.nodeType == 1) { // element
		// do attributes
		if (xml.attributes.length > 0) {
			obj["@attributes"] = {};
			for ( var j = 0; j < xml.attributes.length; j++) {
				var attribute = xml.attributes.item(j);
				obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
			}
		}
	} else if (xml.nodeType == 3) { // text
		obj = xml.nodeValue;
	}
	// do children
	if (xml.hasChildNodes()) {
		for ( var i = 0; i < xml.childNodes.length; i++) {
			var item = xml.childNodes.item(i);
			var nodeName = item.nodeName;
			if (typeof (obj[nodeName]) == "undefined") {
				if(nodeName == "#text"){
					obj = xmlToJson(item);
				}else{
					obj[nodeName] = xmlToJson(item);
				}
			} else {
				if (typeof (obj[nodeName].length) == "undefined") {
					var old = obj[nodeName];
					obj[nodeName] = [];
					obj[nodeName].push(old);
				}
				obj[nodeName].push(xmlToJson(item));
			}
		}
	}
	return obj;
}

  

上一篇:马昕璐 201771010118《面向对象程序设计(java)》第六周学习总结


下一篇:fontresize 移动端的手机字体 大小设置