Google Map API V3:解析XML文档

时间:2011-02-10 21:25:51

标签: javascript google-maps

我正在尝试更新我在第二版中运行良好的Google Maps API网络应用程序。第三版似乎不仅打破了一切,而且还承担了编写自己版本中许多缺少的API函数的负担。

Soooo,在第二版中他们的“商店定位器”示例相对简单的改编已经变成了一个巨大的头痛。

更具体地说,我的问题是解析我的PHP / mySQL代码在用户将一些数据输入网页并将其发送到服务器后返回的XML文档。我知道我输入的测试数据是有效的,1。它在V2下完美运行,2。如果我将其硬编码到PHP页面然后加载该页面,我会在浏览器中加载预期的XML文档(Firefox 3.6.13在Snow Leopard上运行)。

更新:在使用Firebug进行非常谨慎的跟踪后,我发现here的“downloadUrl”函数正确地返回数据。

但是,看起来函数“GXml.parse(data)”(来自here)不处理返回的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 个答案:

答案 0 :(得分:1)

我不再费心解析XML了...更容易将其转换为JSON并将其直接流式传输到对象中..一个例子:

Is this the fastest way to parse my XML into JavaScript objects using jQuery?

邓肯。

答案 1 :(得分:1)

我遇到了同样的问题,但经过一番搜索我发现了这个问题。我还没有完全按照教程,但我想我会继续分享它。

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

米亚