我在解析我的 xml 以覆盖在谷歌地图中作为标记时遇到了一些问题,首先,我有一个这样的 XML 文件
<root>
<weather>
<city>city_name</city>
<level>1</level>
<data>weather_data</data>
<lat>-6.211544</lat>
<lon>106.845172</lon>
<elevation>13.41</elevation>
</weather>
</root>
如您所见,我在一个标签中包含了必要的数据,而不是属性,问题是,在 V2 中,我使用了 GDownloadUrl 和 GXml 解析和 getelementsbytagname 方法。在 V3 中,我似乎不能使用 GDownloadUrl,我在互联网上看到的所有示例都使用属性解析。谁能帮忙?
查看 geoxml3 的源代码(polys 分支或 kmz 分支); nodeValue 函数,这是来自 kmz 分支,polys 分支略有不同,两者都可以工作:
/**
* Extract the text value of a DOM node, with leading and trailing whitespace trimmed.
*
* @param {Element} node XML node/element.
* @param {Any} delVal Default value if the node doesn't exist.
* @return {String|Null}
*/
geoXML3.nodeValue = function(node, defVal) {
var retStr="";
if (!node) {
return (typeof defVal === 'undefined' || defVal === null) ? null : defVal;
}
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;
}
另一种选择是 v2 中两个 Gxml 函数的实现。