位置:海鸟网 > IT > JavaScript >

Javascript解析XML的代码(兼容FIREFOX/IE)

解析XML的代码(兼容FIREFOX/IE)


//导入js文件
function getResult(url, ready) {
var xmlHttp;
var r = function() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
//alert(isIE);
var xmlstr;
var xmldoc;
var isIE = !!(window.attachEvent && !window.opera);
if (isIE)
xmldoc = xmlHttp.responseXML;
else {
xmlstr = xmlHttp.responseText;
alert(xmlstr);
var parser = new DOMParser();
xmldoc = parser.parseFromString(xmlstr, "text/xml");
}
try {
ready(xmldoc);
} catch (e) {
alert(e.message);
}
}
}
}
var create = function(url, r) {
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange = r;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
create(url, r);
}

//应用
function ready(xmlDoc)
{

x=xmlDoc.getElementsByTagName("a")[1];
y=x.childNodes[0];
txt=y.nodeValue;
alert(txt);
}
getResult("../xml.jsp",ready);


xml:


<r>
<a>ff</a>
<a>ggd</a>
</r>


childNodes 属性返回子节点的列表。<a> 元素只有一个子节点,即一个文本节点。
下面的代码检索 <a> 元素的文本节点:
x=xmlDoc.getElementsByTagName("a")[0];
y=x.childNodes[0];
nodeValue 属性返回文本节点的文本值:
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
txt=y.nodeValue;
结果:txt = "ggd"