У меня есть следующий код:
var xmlCurr = new ActiveXObject("Microsoft.XMLDOM");
xmlCurr.async = false;
xmlCurr.load(xmlURL);
return xmlCurr;
Из xmlCurr мне нужна следующая информация
xmlCurr.xml
xmlCurr.documentElement
xmlCurr.selectSingleNode("result").text;
Этот код хорошо работает в IE6 +, но не работает в Chrome или Firefox.
Я попытался адаптировать код из
http://www.w3schools.com/Xml/xml_parser.asp
Чтобы получить что-то вроде следующего:
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlCurr=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlCurr=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlCurr.open("GET",xmlURL,false);
xmlCurr.send();
xmlCurr.xml=xmlCurr.responseXML;
return xmlCurr;
Но безрезультатно ...
У кого-нибудь есть идеи?
Обновление:
Кажется, мой код вообще не запускает AJAX.
The responseText = "\ r \ n"
StatusText = "OK"
Я не знаю, как определить тип MIME. но responseXML.xml = ""
Обновление:
Спасибо abieganski за предложение от http://xkr.us/code/javascript/XHConn/
Пришлось немного подправить, но теперь оно почти работает ...
По какой-то причине - я думаю, как устроен мой веб-сайт - Мне пришлось изменить функцию на синхронную, а не на асинхронную с функцией обратного вызова
Я не понимаю, почему, но я получил ответный текст, но не ответный XML. Поэтому selectSingleNode не будет работать. Поэтому мне пришлось написать грязный кусок кода вместо selectSingleNode
function selectSingleNode2(aXML,aNode) {
aNode=aNode.substr(2,aNode.length-2);
var b1=aXML.indexOf("<"+aNode+">")+aNode.length+2;
var b2=aXML.indexOf("</"+aNode+">");
var b3=aXML.substr(b1,b2-b1);
return b3;
}
Есть идеи, почему?
Спасибо!