0

xml を解析してマーカーとして Google マップにオーバーレイする際に問題が発生しています。まず、このような 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>

ご覧のとおり、属性ではなく 1 つのタグ内に必要なデータが含まれています。問題は、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;
}

もう 1 つのオプションは、v2 の 2 つの Gxml 関数のこの実装です。

于 2012-12-01T12:44:01.287 に答える