Я пытаюсь обновить свое веб-приложение API Карт Google, которое у меня нормально работает во второй версии. Третья версия, кажется, не только сломала все, но и взяла на себя бремя написания собственных версий многих недостающих функций API, которых больше нет.
Тааак, то, что было сравнительно простой адаптацией их примера "поиска магазинов" в версии 2, превратилось в гигантскую головную боль.
Более конкретно, моя проблема заключается в анализе XML-документа, который мой код PHP / mySQL возвращает после того, как пользователь ввел некоторые данные на веб-страницу и отправил их на сервер. Я знаю, что вводимые мной тестовые данные работают, потому что: 1. они работали безупречно в V2, и 2., если я жестко закодировал их на странице PHP и затем загрузил эту страницу, я получил ожидаемый документ XML, загруженный в мой браузер. (Firefox 3.6.13 работает на Snow Leopard).
Обновление: после очень тщательного отслеживания с помощью Firebug я обнаружил, что функция "downloadUrl" из здесь возвращает данные правильно.
Однако похоже, что функция «GXml.parse (data)» (с здесь ) не обрабатывает возвращенный XML. Я вставляю этот код ниже:
function GXml(){}
GXml.value=value;
GXml.parse=parse;
function value(node){
if(!node){
return"";
}
var retStr="";
if(node.nodeType==3||node.nodeType==4||node.nodeType==2){
retStr+=node.nodeValue;
}else if(node.nodeType==1||node.nodeType==9||node.nodeType==11){
for(var i=0;i<node.childNodes.length;++i){
retStr+=arguments.callee(node.childNodes[i]);
}
}
return retStr;
}
function parse(textDoc){
try{
if(typeof ActiveXObject!="undefined"&&typeof GetObject!="undefined"){
var b=new ActiveXObject("Microsoft.XMLDOM");
b.loadXML(textDoc);
return b;
}else if(typeof DOMParser!="undefined"){
return(new DOMParser()).parseFromString(textDoc,"text/xml");
}else{
return Wb(textDoc);
}
}
catch(c){
P.incompatible("xmlparse");
}
try{
return Wb(textDoc);
}
catch(c){
P.incompatible("xmlparse");
return document.createElement("div");
}
}
function P(){}
P.write=function(a,b){}
;P.writeRaw=function(a){}
;P.writeXML=function(a){}
;P.writeURL=function(a){}
;P.dump=function(a){}
;P.incompatible=function(){}
;P.clear=function(){}
;
function Wb(a){
return null;
}