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."); } }