解析2个XML级别的android

时间:2014-12-23 14:47:10

标签: android xml xml-parsing xmlpullparser android-xmlpullparser

如果表格错误,请更正表格,我不完全确定如何标题。

我正在尝试在android中解析我的XML并且我的代码应该可以工作,但问题是我需要进入多个级别的标记。

以下是我的XML示例:

<dsxout>
    <uselessTag>unnecasary info</uselessTag>
    <results>
         <listing>
             <title>I'm a Title</title>
             <description>very amusing description</description>
         </listing>
         <listing>
         ...
         </listing>
    </results>
</dsxout>

这是我的解析卡住的地方:

private List readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {
    List entries = new ArrayList();
    Toast.makeText(getBaseContext(), "readFeed", Toast.LENGTH_SHORT).show();

    parser.require(XmlPullParser.START_TAG, ns, "dsxout");
    while (parser.next() != XmlPullParser.END_TAG) {
        if (parser.getEventType() != XmlPullParser.START_TAG) {
            continue;
        }
        String name = parser.getName();

下面的行只是吐出标签uselessTag和结果

        Toast.makeText(getBaseContext(), name, Toast.LENGTH_SHORT).show();

        // Starts by looking for the entry tag
        if (name.equals("listing")) {
            entries.add(readEntry(parser));
        } else {
            skip(parser);
        }
    }
    return entries;
}

问题是它只读取第二级标记而不是结果标记内部,因此无法找到列表。

在阅读时如何进入另一个级别?

1 个答案:

答案 0 :(得分:0)

添加此语句似乎解决了问题

 if (name.equals("results")) {
   String nextTokedn = "Next Level " + parser.nextTag();
 }