2012-12-22 57 views
-1

我有以下XML,我需要在Android應用程序中解析它。我已經構建了非常有效但對於XML格式,這樣http://dl.dropbox.com/u/6751304/Nicosia.xmlAndroid中的XML解析不會破壞元素

現在我要解析這樣的事情http://www.cytanet.com.cy/Services/connectivity/basic/wireless/GoogleMaps/wifimarkers.xml

以前的解析器,我用不顯示任何結果的解析器。我得到一個空白的loooooong列表,所以我想它讀取標記標籤。我也知道,XML是解析,因爲我可以Log.e它在logcat中,但元素不會被讀取

有人可以識別第二個XML文件的格式並指向關於如何解析的教程/信息它?

(我能後,如果需要對現行代碼)

回答

1

我通常使用SAX解析器,但你正在尋找不同的屬性&不同的標籤。

貌似這篇文章應該讓你開始(套SAX解析) http://xjaphx.wordpress.com/2011/10/09/android-xml-adventure-parsing-data-with-saxparser/

基本上在你的起始元素,你會搶屬性 atts.getValue(MyAttribute.ID)

原因之一兼具是這樣的: 並添加到此..有兩個原因將解析這樣的事情: 你想給一個元素一個屬性來描述它。

<Contact> 
    <Name>John Smith</Name> 
    <PhoneNumber primary="true"> 
      <Number>214-555-1235</Number> 
      <Type>Work</Type> 
    </PhoneNumber> 
    <PhoneNumber> 
      <Number>214-555-1111</Number> 
      <Type>Home</Type> 
    </PhoneNumber> 
</Contact> 
+0

zohreh(下)有一個很好的例子.. – Chrispix

2

因爲XML文件是大不如說使用SAX解析器。對於從SAX解析器使用你應該使用DeafaultHandler並在其的startElement方法,你應該寫同樣的事情以下:

public void startElement(String arg0, String localName, String arg2, 
     Attributes attributes) throws SAXException { 
    currentElement = true; 

if (localName.equals("marker")) { 

     String lat = attributes.getValue("lat"); 

     String lng = attributes.getValue("lng"); 

     String city= attributes.getValue("city"); 

     //and ... 

    } 
} 

    }