javascript xml(四)

function createXMLDOM() {
var version = [
	"MSXML2.DOMDocument6.0",
	"MSXML2.DOMDocument3.0",
	"MSXML2.DOMDocument"
];

for(var i = 0;i < version.length; i++){
	try{
		var xmlDom = new ActiveXObject(version[i]);
		return xmlDom;
	
	}catch(e){
	
	}
}
	throw new Error("您的系统或浏览器不支持MSXML库!");
}


//模拟loadXML()方法,可以简易的创建XML字符串
var xmlParser = new DOMParser();    
var xmlStr = "<root>\n\t<user>Lee</user>\n</root>";
var xmlDom = xmlParser.parseFromString(xmlStr,"text/xml");


//模拟.xml属性序列化字符串
var serializer = new XMLSerializer();
var xml = serializer.serializeToString(xmlDom);
var errors = xmlDom.getElementsByTagName("parsererror");

if(errors.length == 0) {
	alert(xml);
}else{
	throw new Error("错误信息:"+errors[0].textContent);
}


//跨浏览器返回XML DOM对象
function getXMLDOM(xmlStr){
	var xmlDom = null;
	if(typeof window.DOMParser != "undefined"){
		xmlDom = (new DOMParser).parseFromString(xmlStr,"text/xml");
		var errors = xmlDom.getElementsByTagName("parsererror");
		if(errors.length > 0){
			
			throw new Error("错误信息" + errors[0].textContent);
		}
	}
	else if(typeof window.ActiveXObject != "undefined"){
		var version = [
			"MSXML2.DOMDocument6.0",
			"MSXML2.DOMDocument3.0",
			"MSXML2.DOMDocument"
		];
		
		for(var i = 0;i < version.length;i++){
			try {
				var xmlDom = new ActiveXObject(version[i]);
				
			} 
			catch (e) {
			//跳过
			}
		}
		xmlDom.loadXML(xmlStr);
		if(xmlDom.parseError != 0){
			throw new Error("错误信息:"+xmlDom.parseError.reason);
		}
		return xmlDom;
	}
	else{
		throw new Error("您的系统或浏览器不支持XML DOM对象!");
	}
	
	return xmlDom;
	
}

//序列化XML
function serializerXML(xmlDom){
	var xml = "";
	if(typeof window.XMLSerializer != "undefined"){
		xml = (new XMLSerializer()).serializeToString(xmlDom);
	}
	else if(typeof xmlDom.xml != "undefined"){
		xml =xmlDom.xml;
	}
	return xml;
}

var xmlStr = "<root><user>Lee</user></root>";
var xmlDom = getXMLDOM(xmlStr);
alert(serializerXML(xmlDom));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值