我想导入XML文件中的测验问题。XML中有一系列问题,每个问题都有一系列答案。有人可以帮助我并告诉我哪里错了吗?
XML文件“pitanja.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# 代码:
[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);
}
}
[XmlText]
属性来修饰Odgovor.odgovor
属性。 - phoog[XmlElement("Odgovor")]
修饰odgovor
属性时,你告诉序列化器Odgovor
元素包含一个类型为字符串的Odgovor
元素,就像这样:<Odgovori><Odgovor tacan="true"><Odgovor>Madrid</Odgovor></Odgovor></Odgovori>
。使用[XmlText]
来指示odgovor
属性对应于<Odgovor>
元素的文本内容;这将匹配你的示例XML数据。 - phoog