使用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>
答案 0 :(得分:1)
你的xml好像很好。您是否使用处理程序和解析器类来获取xml标记内容?达到它可能是最好的方法。你可以在互联网或其他帖子上找到一些很好的例子。请看一下我正在成功使用的一种方法
http://www.jondev.net/articles/Android_XML_SAX_Parser_Example