我正在尝试更新我在第二版中运行良好的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;
}
答案 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
米亚