XML到JavaScript数组[Google地图] [英] XML to JavaScript Array [Google Maps]
问题描述
我需要从xml创建Javascript数组。
我用ajax从poly php获取xml数据。一切都好。
我必须创建这样的数组:
pre $ point = [
new google.maps.LatLng(40.9921196514,47.8604733650),
new google.maps.LatLng(40.9922511293,47.8606186245),
];
代码
downloadUrl(poly.php,function(data){
var xml = data.responseXML;
var polys = xml.documentElement.getElementsByTagName(poly);
for(var i = 0; i< polys.length; i ++){
var pid = polys [i] .getAttribute(pid);
point = [
new google.maps.LatLng(parseFloat(poly [i] .getAttribute(plat)),parseFloat(polys [i] .getAttribute(plng)));
(b);
我已经这样做了,但它不起作用。((
我从MySQL获得数据。
...
xml:
< polys>
< poly pid =2pstatus =status2plat =40.992252plng =47.860619/>
< / polys>
我可以假设你使用f unction downloadUrl
from googles util.js ?
如果是: data
已经是一个文档,不需要访问 data.responseXML
每次尝试访问属性 xml
会导致错误,因为 xml
是 undefined
替换为:
var xml = data.responseXML;
var polys = xml.documentElement.getElementsByTagName(poly);
附带:
var polys = data.documentElement.getElementsByTagName(poly);
有一个语法错误:
point = [
新的google.maps.LatLng(parseFloat(polys [i] .getAttribute(plat)),parseFloat(polys [i] .getAttribute(plng)));
];
删除分号:
(plng)));
// --------- ^
但是为了得到所需的结果你必须在循环外部创建点数组:
var point = [];
并添加LatLng指向循环:
point.push(新的google.maps.LatLng(parseFloat(polys [i] .getAttribute(plat)),
parseFloat(polys [i]。的getAttribute( PLNG))));
I need create Javascript array from xml ..
I`v get xml data from poly php with ajax. Everything is ok.
I must create array like that:
point = [
new google.maps.LatLng(40.9921196514,47.8604733650 ),
new google.maps.LatLng(40.9922511293,47.8606186245 ),
];
Code
downloadUrl("poly.php", function(data) {
var xml = data.responseXML;
var polys = xml.documentElement.getElementsByTagName("poly");
for (var i = 0; i < polys.length; i++) {
var pid = polys[i].getAttribute("pid");
point = [
new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")), parseFloat(polys[i].getAttribute("plng")) );
];
i`ve do that but it does not work.. ((
P.S. I get data from MySQL.
...
Xml:
<polys>
<poly pid="1" pstatus="status1" plat="40.992638" plng="47.860474"/>
<poly pid="2" pstatus="status2" plat="40.992252" plng="47.860619"/>
</polys>
May I assume you use the function downloadUrl
from googles util.js ?
When yes: data
is already a document, there is no need to access data.responseXML
Each attempt to access a property of xml
will result in an error, because xml
is undefined
Replace this:
var xml = data.responseXML;
var polys = xml.documentElement.getElementsByTagName("poly");
with:
var polys = data.documentElement.getElementsByTagName("poly");
There is an syntax-error:
point = [
new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")), parseFloat(polys[i].getAttribute("plng")) );
];
remove the semicolon:
("plng")) );
//---------^
But to get the desired result you must create the point-array outside the loop:
var point=[];
and add the LatLng's to point inside the loop:
point.push(new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")),
parseFloat(polys[i].getAttribute("plng"))));
这篇关于XML到JavaScript数组[Google地图]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!