Mam problem z parsowaniem XMLa w Kotlinie(w aplikacji na androida, ale ten fakt chyba nie ma znaczenia - dlatego wybrałem kategorię inne języki zamiast android). Otóż próbuję parsować XMLa takiej postaci jak ten http://fcds.cs.put.poznan.pl/MyWeb/BL/615.xml, zapisując obiekty item wewnątrz tagu o tej nazwie w obiekcie o tej samej nazwie, które dodaje sobie kolejno do tablicy, tak wygląda moja funkcja, która ma tym parsowaniem się zajmować:
private fun parseXML(parser: XmlPullParser): ArrayList<Item>
{
var eventType = parser.eventType
var ItemList = ArrayList<Item>()
var Item: Item = Item()
while(eventType != XmlPullParser.END_DOCUMENT)
{
var TagName = parser.getName()
var text = ""
when(eventType)
{
XmlPullParser.START_TAG -> if (TagName == "ITEM")
{
Item = Item()
}
XmlPullParser.TEXT -> text = parser.getText()
XmlPullParser.END_TAG -> when(TagName)
{
"ITEM" -> ItemList.add(Item)
"ITEMTYPE" -> Item.ItemType= text
"ITEMID" -> Item.ItemId = text
"QTY" -> Item.qty = text
"COLOR" -> Item.color = text;
"EXTRA" -> Item.extra = text
"MATCHID" -> Item.matchid = text
"COUNTERPART" -> Item.counterPart = text
}
}
eventType = parser.next()
}
return ItemList
}
Niestety ale gdy próbowałem to debugować, to wychodzi na to, że zmienna text, cały czas pozostawała pusta, ale nie mogę zrozumieć dlaczego... wydaje mi się to być kompletnie sprzeczne z logiką napisanej przeze mnie funkcji.
Tu jakby co deklaracja klasy Item
class Item {
var ItemType = ""
var ItemId = ""
var qty = ""
var color = ""
var extra = ""
var matchid = ""
var counterPart =""
}