我检查了SO的xmlpullparser异常,但它给了我其他Android和SOUP的问题。我正在使用J2me和普通的HTTPrequest来获取我的XML,而我正在使用kXMl来解析xml文本。以下是我正在处理的代码。在它之上是更多解析代码,它们完美地工作。
if (parser.getName().equals("comments")) {
event = parser.next();
boolean flag = false;
if (parser.getName().equals("comment")) {
flag = true;
System.out.println("Flag is true");
}
while (flag) {
event = parser.next();
Questioncomments.addComponent(new Label(parser.nextText()));
event = parser.next();
System.out.println("Inside the While");
if (!parser.getName().equals("comment")) {
flag = false;
System.out.println("Flag is false");
}
}
Questioncomments.repaint();
}
XML我发送此方 - <comments><comment>Awesome Question @dulitha<idComment></idComment></comment></comments>
错误是 -
org.xmlpull.v1.XmlPullParserException:前提条件:START_TAG (位置:TEXT真棒问题...... @ 1:399 in java.io.InputStreamReader@f828ed68) 在org.kxml2.io.KXmlParser.exception(+47) 在org.kxml2.io.KXmlParser.nextText(+14) 在 com.petmill.mobile.view.qanda.QuestionCanvas.setData(QuestionCanvas.java:189) 在 com.petmill.mobile.view.qanda.QuestionsList $ 5 $ 1 $ 1.actionPerformed(QuestionsList.java:119)
错误出现在我试图获取文本的行 - parser.nextText()。如何解析xml以获取所需数据...提前感谢。
答案 0 :(得分:1)
当您致电START_TAG
时,您似乎没有参加parser.nextText().
活动。当您使用parser.nextText()
致电parser.getEventType()
时,请检查您是否参加了START_TAG活动。我怀疑您在<comments>
和<comment>
标记之间有一些空格,因此您的解析器不会出现您预期的事件。
也许您还应该考虑使用更安全的方法来解析此xml。
答案 1 :(得分:0)
<comments>
<comment>Awesome Question @dulitha
<idComment></idComment>
</comment>
</comments>
这是无效的xml