我正在尝试更新我的Google Maps API web应用程序,该应用程序在版本2下运行得很好。第三版似乎不仅破坏了一切,而且还承担了为许多缺失的API函数编写自己版本的负担,这些API函数已经不存在了。
所以,在版本2下,他们的"store locator“示例的一个相对简单的改编已经变成了一个巨大的头痛。
更具体地说,我的问题是解析PHP/mySQL代码返回的XML文档,该文档是在用户向web页面输入一些数据并将其发送到服务器之后返回的。我知道我输入的测试数据是有效的,因为,1.它在V2下运行得天衣无缝,2.如果我将其硬编码到PHP页面中,然后加载该页面,我会在浏览器中加载期望的XML文档(在雪豹上运行的Firefox3.6.13)。
更新:在非常仔细地跟踪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;
}发布于 2011-02-11 08:38:35
我不再费心解析XML了..将其转换为JSON并直接将其流式传输到对象中要容易得多。举个例子:
Is this the fastest way to parse my XML into JavaScript objects using jQuery?
邓肯。
发布于 2011-11-04 23:53:32
我也遇到了同样的问题,但我在搜索了一下后发现了这个。我还没有完全遵循教程,但我想我应该继续分享它。
http://code.google.com/apis/maps/articles/phpsqlsearch_v3.html
米娅
https://stackoverflow.com/questions/4962879
复制相似问题