Ich möchte Fragen für Quiz importieren, die in XML-Datei sind. Es gibt eine Liste von Fragen in XML, und jede Frage enthält eine Liste mit Antworten. Kann mir jemand helfen und mir sagen, wo ich falsch liege?XML-Deserialisierung C# -Array
XML-Datei "pitanja.xml":
<?xml version="1.0" encoding="utf-8"?>
<Pitanja>
<Pitanje>
<TekstPitanja>
U kojoj državi se nalazi Ajfelova kula?
</TekstPitanja>
<Odgovori>
<Odgovor tacan = "true" > Francuska </Odgovor>
<Odgovor> Nemačka </Odgovor>
<Odgovor> Španija </Odgovor>
<Odgovor> Italija </Odgovor>
</Odgovori>
</Pitanje>
<Pitanje>
<TekstPitanja>
U kom gradu se nalazi Big Ben?
</TekstPitanja>
<Odgovori>
<Odgovor tacan = "true" > London </Odgovor>
<Odgovor> Pariz </Odgovor>
<Odgovor> Lisabon </Odgovor>
<Odgovor> Madrid </Odgovor>
</Odgovori>
</Pitanje>
<Pitanje>
<TekstPitanja>
Glavni grad Španije je?
</TekstPitanja>
<Odgovori>
<Odgovor tacan = "true" > Madrid </Odgovor>
<Odgovor> Barselona </Odgovor>
<Odgovor> Lisabon </Odgovor>
<Odgovor> Rim </Odgovor>
</Odgovori>
</Pitanje>
</Pitanja>
C# -Code:
[XmlRoot("Pitanja")]
public class Pitanja
{
[XmlArray("Pitanja")]
[XmlArrayItem("Pitanje")]
public List<Pitanje> SvaPitanja { get; set; }
}
public class Pitanje
{
[XmlElement("TekstPitanja")]
public string TekstPitanja { get; set; } // Tekst pitanja
[XmlArray("Odgovori")]
[XmlArrayItem("Odgovor")]
public List<Odgovor> Odgovori { get; set; } // Niz odgovora na pitanje
}
public class Odgovor
{
[XmlText]
public string odgovor { get; set; }
[XmlAttribute]
public Boolean tacan { get; set; }
}
public void ucitajpitanja()
{
XmlSerializer dsr = new XmlSerializer(typeof(Pitanja));
using (System.IO.StreamReader str = new System.IO.StreamReader(@"C:\pitanja.xml"))
{
pitanja = (Pitanja)dsr.Deserialize(str);
}
}
Die XmlSerializer sucht (zum Beispiel) ' ArrayOfOdgovor>'. Es wird ein ' ' in ein 'Foo []' Array oder eine 'List ' deserialisieren. Aber ich weiß nicht, wie ich das erreichen könnte, wenn 'ArrayOfFoo'-Elemente in der Quelle fehlen. –
phoog
Ich bearbeite ein XML-Dokument, aber das Programm funktioniert immer noch nicht. –
Hallo Zoran, ich vermute, dass Sie die Eigenschaft 'Odgovor.odgoador' mit dem '[XmlText]' - Attribut dekorieren müssen. – phoog