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