第18章 JavaScript与XML
这一章看得也挺折磨的,太枯燥了,用的时候再来翻翻手册这种方式比较好。
18.1 浏览器对 XML DOM 的支持
18.1.5 跨浏览器处理 XML
以下函数可在四中主要浏览器中使用
function parseXml(xml) {
var xmldom = null;
if (typeof DOMParser != "undefined") {
xmldom = (new DOMParser().parseFromString(xml, "text/xml"));
var errors = xmldom.getElementsByTagName("parseerror");
if (errors.length) {
throw new Error("XML parsing error:" + errors[0].textContent);
} else if (typeof ActiveXObject != "undefined") {
xmldom = createDocument();
xmldom.loadXML(xml);
if (xmldom.parseError != 0) {
throw new Error("XML parsing error:" + xmldom.parseError.reason);
}
} else {
throw new Error("No XML parser available.");
}
return xmldom;
}
}
使用这个函数解析 XML 字符串时,应该将其放在 try-catch 语句中,以防发生错误。
var xmldom = null;
try {
xmldom = parseXml("<root><child/></root>")
} catch (ex) {
alert(ex.message);
}
同样的可以给出一个通用的序列化函数。
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.");
}
}
网友评论