我想用xml数据填充一个对象。 听起来很简单,但问题是,对象不会嵌套一次而是嵌套两次。 XML文件如下所示:
<antwoordenlijst>
<antwoorden id="1">
<antwoord keuze="a" value="0" volgnr="1">Ja, alles beter dan dat honden weer in Nederland</antwoord>
<antwoord keuze="b" value="0" volgnr="1">Gaat wel</antwoord>
<antwoord keuze="c" value="0" volgnr="1">Nee, ik heb toch liever het weer in Nederland</antwoord>
</antwoorden>
<antwoorden id="2">
<antwoord keuze="a" value="10" volgnr="2">Volgens mij maakt de kleur voor jouw niet veel uit, alles staat je goed</antwoord>
<antwoord keuze="b" value="0" volgnr="2">Ik geef je vrouw gelijk</antwoord>
<antwoord keuze="c" value="-30" volgnr="2">Het staat je allebei niet.</antwoord>
</antwoorden>
等...
我试过的是:
private function antwoordenGeladen(e:Event):void
{
var antwoordenOverzichtIndex = 0;
deXmlData = new XML(deLader.data);
for (var i:Number=0; i<26; i++)
{
var xmlAntwoorden:XMLList = deXmlData.antwoordenlijst;
var antw:Object = new Object();
for (var s:Number=0; s<3; s++)
{
antw["Keuze"] = xmlAntwoorden.child(i).child(s).@keuze;
antw["Value"] = xmlAntwoorden.child(i).child(s).@value;
antw["Volgnr"] = xmlAntwoorden.child(i).child(s).@volgnr;
antw["Vraag"] = xmlAntwoorden.child(i).child(s);
antw["Id"] = xmlAntwoorden.child(i).@id;
antwoordenLijst[antwoordenOverzichtIndex] = antw;
antwoordenOverzichtIndex++;
}
antwoordenOverzicht[i] = antwoordenLijst;
}
}
但由于某种原因,它会覆盖antwoordenOverzicht [i]
的值如果我检查调试器,变量i每次出现时都会上升,所以我很困惑。
如果有人看到更好的方法,或者只是知道答案我会很感激。
答案 0 :(得分:0)
我认为你可以做一些你想要做的更简洁的事情(未经测试):
private function antwoordenGeladen(e:Event):void
{
deXmlData = new XML(deLader.data);
for (var i:Number=0; i<26; i++)
{
var xmlAntwoorden:XMLList = deXmlData.antwoordenlijst;
var antwoordenLijst = [];
for (var s:Number=0; s<3; s++)
{
antwoordenLijst.push({
keuze: xmlAntwoorden.child(i).child(s).@keuze,
value: xmlAntwoorden.child(i).child(s).@value,
volgnr: xmlAntwoorden.child(i).child(s).@volgnr,
vraag: xmlAntwoorden.child(i).child(s),
id: xmlAntwoorden.child(i).@id
});
}
antwoordenOverzicht.push(antwoordenLijst);
}
}