Google Map API V3: анализ XML-документа - PullRequest
3 голосов
/ 11 февраля 2011

Я пытаюсь обновить свое веб-приложение 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;
}

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

У меня такие же проблемы, но я нашел это после небольшого поиска.Я еще не прошел весь урок до конца, но подумал, что смогу поделиться им.

http://code.google.com/apis/maps/articles/phpsqlsearch_v3.html

Mia

1 голос
/ 11 февраля 2011

Я больше не беспокоюсь о разборе XML ... намного проще преобразовать его в JSON и передать его прямо в объекты ... один пример:

Это самый быстрый способ анализа моего XML в объекты JavaScriptиспользуя jQuery?

Дункан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...