2012-04-25 112 views
1

使用Eclipse 3.7.2 的Android 2.3.3/API等級10閱讀困難的XML文件

我無法讀取XML文件。我「認爲」我用這段代碼正確處理文件,然後打開它進行輸入/輸出,因爲我想讀取信息,顯示給用戶,然後用任何更改進行更新。

當我轉到閱讀文件時,來自c#世界,我看到了我不熟悉的行爲。在調試透視圖中,我的變量具有紅色正方形值。現在這可能是好的,但我的第一個想法是紅色==麻煩?然而,數據(調試透視圖的變量窗口中的數據)似乎沒問題,所以我繼續。我的eventType是一個零,我進入case語句,但然後我拋出一個異常。現在我在這裏丟球。我不知道如何獲得關於Java中異常的更多信息。例如在C#世界中,我可以得到內部異常。我確信有一種Java我還沒有學到。

步驟如下: 從1號線我直接跳到第9行F6(Eclipse的調試快捷鍵「步過」)把我帶到線4條,F6再次回到9號線,F6最後一次,我得到了一個泛泛的例外。

try 
    { 
     DataFileOut = new FileOutputStream(LiftFile); 
     DataFileIn = new FileInputStream(LiftFile); 
     InputStreamReader isr = new InputStreamReader(DataFileIn);   

     // auto-detect the encoding from the stream  
     parser.setInput(isr);  
     int eventType = parser.getEventType();  
     Category currentCategory = null; 
     boolean done = false;  
     while (eventType != XmlPullParser.END_DOCUMENT && !done) 
     {   
      String name = null; 
    0  //eventType = 2; 
    1  switch (eventType) 
      { 
    3   case XmlPullParser.START_DOCUMENT: 
    4   break; 

      case XmlPullParser.START_TAG: 
     .... 
     } 
    9  eventType = parser.next(); 
    } 
} 

所以我的想法是我有一個不好的FileInputStream句柄或者我的XML文檔沒有正確組織?任何其他想法?

<?xml version="1.0" encoding="UTF-8"?> 
    <ExcersiseInformation> 
     <Lifts count="6"> 
      <Lift> 
     <ID>1001001</ID> 
     <Name>Hammer Curls</Name> 
     <PreviousLift>45</PreviousLift> 
     <PreviousReps>8</PreviousReps> 
     <SuggestLift>45</SuggestLift> 
     <SuggestReps>10</SuggestReps> 
     <ActualLift></ActualLift> 
     <ActualReps></ActualReps> 
      </Lift> 
      ..... 
     </Lifts> 
    </ExcersiseInformation> 
+0

什麼是「F6」的意思是請看看下列之一,同樣的方法? – 2012-04-25 15:06:38

+0

如果我沒有弄錯F6,請跳到下一行(執行下一行代碼)。 @ user1278561:打開Logcat窗口;你應該看到你的紅色異常以及顯示異常類型和導致異常的代碼行的堆棧跟蹤。 – kcoppock 2012-04-25 15:45:55

+0

發佈堆棧跟蹤 – njzk2 2012-04-25 16:46:33

回答

1

您的xml似乎很好地形成。您是否使用處理程序和分析器類來獲取XML標記內容?可能是最好的方法來達到它。你可以在互聯網或其他帖子上找到一些很好的例子。我使用successfuly

http://www.jondev.net/articles/Android_XML_SAX_Parser_Example

+0

該教程是偉大的,SAX解析器是更好的無論如何..現在我很熟悉它,我不會很快返回到DOM。 – GPGVM 2012-05-08 21:11:26