Я пытаюсь извлечь информацию из XML-файла, и это код, который я сейчас разрабатываю, чтобы заставить его работать.Цитирование анализатора xml до тех пор, пока не будет выполнен тег
private void parseXML(XmlPullParser parser)
throws XmlPullParserException, IOException {
int eventType = parser.getEventType();
Map<String, Map<String, Double>> sports = new HashMap<String, Map<String, Double>>();
while (eventType != XmlPullParser.END_DOCUMENT) {
String name = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
String sportName = null;
boolean paid = false;
Map<String, Double> preset = null;
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
preset = new HashMap<String, Double>();
break;
case XmlPullParser.START_TAG:
name = parser.getName();
if (name.equals("sport")) {
sportName = parser.getAttributeValue(0);
paid = Boolean.parseBoolean(parser
.getAttributeValue(1));
} else if (name.equals("preset")) {
// TODO figure out how to loop this so it finished up the sport and then moves on to the next one
String presetName = parser
.getAttributeValue(0);
double value = Double.parseDouble(parser
.nextText());
preset.put(presetName, value);
parser.next();
}
break;
case XmlPullParser.END_TAG:
name = parser.getName();
}
sports.put(sportName, preset);
eventType = parser.next();
}
}
}
И это XML ее вытягивать информацию из
<?xml version="1.0" encoding="utf-8"?>
<sports>
<sport name="Baseball" paid="false">
<preset name="Pitching Mound">726.0</preset>
<preset name="Base Distance">1080.0</preset>
</sport>
<sport name="Basketball" paid="false">
<preset name="NBA Free Throw Line">181.08</preset>
<preset name="NBA 3pt Line">265.8</preset>
</sport>
<sport name="Cricket" paid="true">
<preset name="Cricket Pitch">2012.0</preset>
</sport>
</sports>
Что код по существу это получает имя спорта, будь то платная функция или нет, и пресетов я определил для этого. То, что я пытаюсь сделать, это сделать часть, где она добавляет пресет к предварительно установленной карте, цикл до конца спортивных пресетов. Я не на 100% удобен в использовании XML-анализов, потому что меня путают с его использованием. Я попытался получить счет атрибута, когда код получил название спорта, а затем зациклил его, но он не работал.