2012-05-20 102 views
1

我在這裏遇到問題。 我想解析從谷歌地圖KML文件。我會成功解析存儲座標的節點。Android - 使用DOM解析器的KML解析器

但我想解析節點的childNodes 這裏是KML文件。

<Placemark> 
<name>Head north on Jalan Kebagusan Raya toward Jalan Anggrek</name> 
<description><![CDATA[go 850&#160;m]]></description> 
<address>Jalan Kebagusan Raya</address> 
... 
</Placemark 

解析它,我用這個代碼,

NodeList nlPlace = doc.getElementsByTagName("Placemark"); 
     for(int p = 0; p < nlPlace.getLength(); p++){ 
      Node rootPlace = nlPlace.item(p); 
      NodeList itemPlace = rootPlace.getChildNodes(); 
      for(int y = 0; y < itemPlace.getLength(); y++){ 
       Node placeStringNode = itemPlace.item(y); 
       NodeList place = placeStringNode.getChildNodes(); 
       //valueName = nameList.item(0).getNodeValue().toString() + "+"; 
       pathName.add(place.item(0).getNodeValue()); 
      } 
     } 

desk.setText(""); 
     for (int j = 0; j < strPlace.length; j++){ 
      desk.append("Deskripsi:\n" + strPlace[j] + "\n"); 
     } 

,但是當我在真實設備/模擬器嘗試,我得到的東西,我不想。 這是我的真實設備 enter image description here

從scrshot截圖,我只是想「東北頭惹Darmo卡利向惹Darmoerjo 4」搶信息。只是它。

你能幫我解決我的問題嗎?

在此先感謝,併爲我的英語很抱歉,感謝:)

回答

1

類似下面應該做你想要什麼。

NodeList nlPlace = doc.getElementsByTagName("Placemark"); 
for(int p = 0; p < nlPlace.getLength(); p++){ 
    Element place = (Element)nlPlace.item(p); 
    Element name = (Element)place.getElementsByTagName("name"); 

    //..... 
    } 
}