Android 正在分析XML以尝试获取下一个子节点

Android 正在分析XML以尝试获取下一个子节点,android,xml,Android,Xml,我试图从Android应用程序中的XML文件中获取以下数据 <studentenhuizen version="1.0" timestamp="1399460687"> <studentenhuizen> <adres>Aalbeeksesteenweg</adres> <huisnr>19</huisnr> <gemeente>KORTRIJK</gemeente> <aantal_kamer

我试图从Android应用程序中的
XML文件中获取以下数据

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

注意:当我询问
huizen.size()时,我确实得到了所有199个结果但很明显它们是空的,因为我不知道如何获取Adres,HUISR,…

那么你可以添加一个新方法,类似这样:

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);
}

首先,您遇到了一个问题,因为两个不同的元素具有相同的标记名;将给我节点名“adres”,知道如何获得该值吗?结果是空的,即使当我做` next=parser.next();if(name.equals(“adres”){Log.d(“TEST”,“It worked”);}`
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);
}
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);
}