跨浏览器处理处理XML

一个简单的处理 XML 的函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function parseXml(xml) {
//跨浏览器处理 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 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 文档

1
2
3
4
5
6
7
8
9
10
11
12
13
//序列化 xmldom 文档
function serializeXML(xmldom) {
if (typeof XMLSerializer != "undefined") {
//兼容 ie9+ safari Chrome opera
var serializer = new XMLSerializer()
return serializer.serializeToString(xmldom)
} else if (typeof xmldom.xml != undefined) {
//兼容 ie9.0 以下
return xmldom.xml
} else {
throw new Error("serialize XML Dom failed!")
}
}