У меня возникает проблема разбора xml с помощью XmlPullParser. Everithing работает отлично, за исключением этой problmatic части:Анализ синтаксиса XML с использованием XmlPullParser
<Device>
<Description>
Tracker, type CONNECT
<Firmware>0240</Firmware>
</Description>
<Settings>
...
</Settings>
<Variables>
...
</Variables>
</Device>
мне нужно разобрать как ОПИСАНИЯ и прошивку. Но я не могу правильно прочитать этот текст описания из-за таких тесных странностей.
То, что я пытался (following this guide):
private Device parseDevice(XmlPullParser parser) throws XmlPullParserException, IOException {
Device device = new Device();
parser.require(XmlPullParser.START_TAG, ns, DEVICE);
//device.setDescription(readDeviceDescription(parser)); <---tried to parse from here
device.setName(readDeviceName(parser));
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
// Starts by looking for the entry tag
switch (name) {
case DESCRIPTION:
// device.setDescription(readDeviceDescription(parser)); <---and from here
device.setFirmware(readDescription(parser, device)); //<-- and inside this method
break;
case VARIABLES:
device.setGroups(readGroups(parser));
break;
default:
skip(parser);
break;
}
}
return device;
}
readDeviceDesscription() метод (возможно, проблема заключается здесь):
private String readDeviceDescription(XmlPullParser parser) throws XmlPullParserException, IOException {
String result = "";
if (parser.next() == XmlPullParser.TEXT) {
result = parser.getText();
parser.next();
}
return result;
}
Но любая моя попытка заканчивалась с возвращением нуль либо к прошивке или к описанию.
Пожалуйста, помогите. Оцените любой намек.
благодарит за ответ. Но где я должен называть этот метод 'readDeviceDescription'? Из случая 'ОПИСАНИЕ'? – AnZ
Я изменил этот метод, чтобы он работал, потому что вы его на самом деле называете. – Nanoc