Kotlin XMLPullParser只返回一个元素
我无法解析XML文件,它只返回一个元素,而不是4个 这是我的XML文件Kotlin XMLPullParser只返回一个元素,kotlin,xml-parsing,Kotlin,Xml Parsing,我无法解析XML文件,它只返回一个元素,而不是4个 这是我的XML文件 <Quizzs> <Quizz type="A">...</Quizz> <Quizz type="B">...</Quizz> <Quizz type="C">...</Quizz> <Quizz type="D">...</Quizz> </Quizzs> 对于每个“测验”,您需要在当前测验中添加()
<Quizzs>
<Quizz type="A">...</Quizz>
<Quizz type="B">...</Quizz>
<Quizz type="C">...</Quizz>
<Quizz type="D">...</Quizz>
</Quizzs>
对于每个“测验”
,您需要在当前测验中添加()。使用currentQuizz.type=…
时,您只需用当前的一个覆盖前面的每个“Quizz”
,因此您只会得到最后一个,即D
我想你被自己的代码弄糊涂了。对于“Quizzs”
标记,创建一个Quizz()
对象,而不是QuizzList()
对象或类似的对象。对于“Quizz”
标记,每次都应该创建一个新的Quizz()
对象。然后,您应该将该对象添加到您的测验列表中
您需要。为每个“测验”
向您的当前测验添加()。使用currentQuizz.type=…
时,您只需用当前的一个覆盖前面的每个“Quizz”
,因此您只会得到最后一个,即D
我想你被自己的代码弄糊涂了。对于“Quizzs”
标记,创建一个Quizz()
对象,而不是QuizzList()
对象或类似的对象。对于“Quizz”
标记,每次都应该创建一个新的Quizz()
对象。然后,您应该将该对象添加到您的问答列表中
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)
}