XMLファイルにあるクイズの質問をインポートしたいと思います。 XMLには質問のリストがあり、すべての質問には回答のリストがあります。誰かが私を助けて、私が間違っている場所を教えてくれる?XML逆シリアル化C#配列
XMLファイル "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#コード:私はあなたが、追加要素で<Odgovor>要素をラップする必要があると思う
[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);
}
}
のXmlSerializerは ' ArrayOfOdgovor>'(例えば)を探しています。 ' 'を 'Foo []'配列または 'List 'に逆シリアル化します。しかし、ソースに 'ArrayOfFoo'要素がない場合、それを行う方法を知りません。 –
phoog
XML文書を編集しますが、プログラムはまだ動作しません。 –
こんにちはZoran、 'Odgovor.odgovor'プロパティを' [XmlText] '属性で飾る必要があると思います。 – phoog