kXML (XmlPullParser) не соответствует END_TAG
Я пытаюсь найти способ переписать часть моего XML-кода для разбора. В настоящее время я работаю с kXML2, и вот мой код -
byte[] xmlByteArray;
try {
xmlByteArray = inputByteArray;
ByteArrayInputStream xmlStream = new ByteArrayInputStream(xmlByteArray);
InputStreamReader xmlReader = new InputStreamReader(xmlStream);
KXmlParser parser = new KXmlParser();
parser.setInput(xmlReader);
parser.nextTag();
while(true)
{
int eventType = parser.next();
String tag = parser.getName();
if(eventType == XmlPullParser.START_TAG)
{
System.out.println("****************** STARTING TAG "+tag+"******************");
if(tag == null || tag.equalsIgnoreCase(""))
{
continue;
}
else if(tag.equalsIgnoreCase("Category"))
{
// Gets the name of the category.
String attribValue = parser.getAttributeValue(0);
}
}
if(eventType == XmlPullParser.END_TAG)
{
System.out.println("****************** ENDING TAG "+tag+"******************");
}
else if(eventType == XmlPullParser.END_DOCUMENT)
{
break;
}
}
catch(Exception ex)
{
}
Мой входной XML выглядит следующим образом -
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql" xmlns="">
<Category name="xyz">
<elmt1>value1</elmt1>
<elmt2>value2</elmt2>
</Category>
<Category name="abc">
<elmt1>value1</elmt1>
<elmt2>value2</elmt2>
</Category>
<Category name="def">
<elmt1>value1</elmt1>
<elmt2>value2</elmt2>
</Category>
Вкратце моя проблема в том, что я ожидаю XmlPullParser.END_TAG
когда он встречает закрывающий тег XML. Это ударил XmlPullParser.START_TAG
но это просто кажется, чтобы пропустить / игнорировать все END_TAG
s.
Это как это должно работать? Или я что-то упустил?
Любая помощь высоко ценится,
Тея.
2 ответа
Ой, извините, как всегда, оказалось плохой идеей написать универсальный блок. Я не заметил, что в коде были исключения, которые я не разместил здесь, и которые должны войти в XmlPullParser.END_TAG. Убрал его и работает как шарм:)
Ну, не уверен, что это именно ваша проблема, но вам не хватает
</root>
Вы пытались распечатать, что тип eventType после начального тега и после содержимого?