function parseXml(xml){
var xmldom = null;
if(typeof DOMParser!="undefined"){
xmldom = (new DOMParser()).parseFromString(xml,"text/xml");
var errors = xmldom.getElementsByTagName("parsererror");
if(errors.length){
throw new Error("XML parse error:"+errors[0].textContent);
}else if(typeof ActiveXObject!="undefined"){
xmldom = createDocument();
xmldom.loadXML(xml);
if(xmldom.parseError!=0){
throw new Error("XML parse error:"+xmldom.parseError.reason);
}
}else{
throw new Error("No XML parser available.");
}
return xmldom;
}
注意:
使用上面函数时,应注意捕获异常。
如下:
var xmldom = null;
try{
xmldom = parseXml("<root><child/></root>");
}catch(ex){
alert(ex.message);
}
序列化XML
function serializeXml(xmldom){
if(typeof XMLSerializer!="undefined"){
return (new XMLSerializer()).serializeToString(xmldom);
}else if(typeof xmldom.xml!="undefined"){
return xmldom.xml;
}else{
throw new Error("Could not serialize XML DOM.");
}
}