2012-04-25 79 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