0

我检查了 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 Awesome Question...@1:399 in java.io.InputStreamReader@f828ed68) at org.kxml2.io.KXmlParser.exception(+47) at org. kxml2.io.KXmlParser.nextText(+14) at com.petmill.mobile.view.qanda.QuestionCanvas.setData(QuestionCanvas.java:189) at com.petmill.mobile.view.qanda.QuestionsList$5$1$1.actionPerformed(问题列表.java:119)

错误出现在我试图获取文本的行 - parser.nextText()。如何解析 xml 以获取所需的数据...提前致谢。

4

2 回答 2

1

当您调用时,您似乎不在该START_TAG事件中parser.nextText().检查您在调用时是否在 START_TAG 事件parser.nextText()parser.getEventType()。我怀疑您在<comments><comment>标记之间有一些空格,因此您的解析器不在您期望的事件中。

也许您还应该考虑一种更安全的方法来解析此 xml。

于 2011-08-28T18:16:00.070 回答
0
<comments>
          <comment>Awesome Question @dulitha
            <idComment></idComment>
           </comment>
</comments>

这是无效的 xml

于 2011-08-24T04:27:41.877 回答