• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Parsowanie plików XML w Kotlinie

VPS Starter Arubacloud
0 głosów
131 wizyt
pytanie zadane 26 października 2020 w Inne języki przez Lyokoheros Początkujący (340 p.)
edycja 26 października 2020 przez Lyokoheros

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 =""
}

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 359 wizyt
pytanie zadane 7 lutego 2018 w JavaScript przez Anoonymous Obywatel (1,560 p.)
0 głosów
1 odpowiedź 1,046 wizyt
pytanie zadane 27 października 2016 w JavaScript przez Newperty Początkujący (280 p.)
0 głosów
1 odpowiedź 282 wizyt
pytanie zadane 14 sierpnia 2017 w C i C++ przez niezalogowany

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...