解析XML以尝试获取下一个childnode

时间:2014-05-07 13:21:54

标签: android xml

我试图从Android应用中的XML file获取以下数据

<studentenhuizen version="1.0" timestamp="1399460687">
<studentenhuizen>
<adres>Aalbeeksesteenweg</adres>
<huisnr>19</huisnr>
<gemeente>KORTRIJK</gemeente>
<aantal_kamers>14</aantal_kamers>
</studentenhuizen>
</studentenhuizen>

加载XML文件的代码

int next = parser.next();
String name = null;
while (next != XmlPullParser.END_DOCUMENT) {
if (next == XmlPullParser.START_TAG) {
name = parser.getName();
if (name.equals("studentenhuizen")) {
//what do I have to here?

Studentenhuis st = new Studentenhuis(adres, huisnr,gemeente, aantalKamers);
huizen.addst
}
next = parser.next();

注意:当我要求huizen.size();时,我确实获得了所有199个结果,但显然他们已经空了,因为我不知道如何获得Adres,huisnr,...

2 个答案:

答案 0 :(得分:1)

那么你可以添加一个新的方法,如下所示:

private Studentenhuis parseStudentenhuis(XmlPullParser parser) throws XmlPullParserException, IOException {

        //Declare this variables
        adres, huisnr,gemeente, aantalKamers;

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

        if (name.equals("adres")) {
            adres = getText();
        } else if (name.equals("huisnr")) {
            huisnr= getText();
        } else if (name.equals("gemeente")) {
         ....
        }
    }

    return new Studentenhuis(adres, huisnr,gemeente, aantalKamers);
}

答案 1 :(得分:1)

if (name.equals("studentenhuizen")) {
    next = parser.next();
     if (name.equals("adres")) {
          next = parser.next();
          String adres = parser.getText();
     }
    //Similarly for other fields
    Studentenhuis st = new Studentenhuis(adres, huisnr,gemeente, aantalKamers);
}