XMLPullParser仅返回一个元素

时间:2019-10-13 15:03:29

标签: kotlin xml-parsing

我无法解析我的XML文件,它仅返回一个元素,而不是4

这是我的XML文件

<Quizzs>
<Quizz type="A">...</Quizz>
<Quizz type="B">...</Quizz>
<Quizz type="C">...</Quizz>
<Quizz type="D">...</Quizz>
</Quizzs>

仅返回最后一个“ D”

        while (eventType != XmlPullParser.END_DOCUMENT) {
            var eltName: String? = null

            when (eventType) {
                XmlPullParser.START_TAG -> {
                    eltName = parser.name

                    if ("Quizzs" == eltName) {
                        currentQuizz = Quizz()
                        quizz.add(currentQuizz)
                    } else if (currentQuizz != null) {
                        if ("Quizz" == eltName) {
                            currentQuizz.type = parser.getAttributeValue(null, "type")
                        }

                    }
                }
            }

            eventType = parser.next()
        }

        printPlayers(quizz)
    }

1 个答案:

答案 0 :(得分:0)

您需要为每个.add() currentQuizz "Quizz"进行一些操作。使用currentQuizz.type = ...,您只需用当前的"Quizz"覆盖每个先前的D,最后只剩下最后一个"Quizzs"

我认为您对自己的代码感到困惑。为Quizz()标签创建一个QuizzList()对象,而不是"Quizz"对象或类似对象。对于Quizz()标签,您应该每次创建一个新的QuizzList对象。然后,您应该将该对象添加到retrievePetData(): Observable<any>{ let body = JSON.stringify({type: "Dog"}); return this.http.post<any>(this.endpoint, body); } 中。