2012-12-01 53 views
0

我有在解析XML我一些問題,在谷歌地圖作爲標記,第一關被覆蓋越來越元素,我有這樣的谷歌地圖API V3解析XML和標籤名稱

<root> 
一個XML文件

<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,並且我在互聯網上看到的所有示例都使用屬性解析。任何人都可以幫忙嗎?

回答

0

查看geoxml3的來源(polys branchkmz branch);該功能的nodeValue,這是從KMZ分支,該分支多邊形略有不同,無論是將工作:

/** 
* 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; 
} 

另一種選擇是this實現從V2兩個Gxml功能。

+0

哦所以GXml沒有在v3中實現。感謝您的幫助,我會嘗試這種方法,同時將XML重構爲v3友好的形式。 – akiortagem

+0

我不確定什麼是「v3友好形式」。 v3本身不支持任何xml解析,必須在您的代碼或外部庫中完成。 – geocodezip