0

我在解析要在谷歌地图中作为标记覆盖的 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,而且我在互联网上看到的所有示例都使用属性解析。有人可以帮忙吗?

4

1 回答 1

0

查看 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 函数实现。

于 2012-12-01T12:44:01.287 回答