难以阅读XML文件

时间:2012-04-25 14:57:05

标签: android

使用Eclipse 3.7.2 Android 2.3.3 / API等级10

我在阅读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>

1 个答案:

答案 0 :(得分:1)

你的xml好像很好。您是否使用处理程序和解析器类来获取xml标记内容?达到它可能是最好的方法。你可以在互联网或其他帖子上找到一些很好的例子。请看一下我正在成功使用的一种方法

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