我有以下反序列化方法:
public static List<Enquete> GetAlleEnquetes()
{
XmlReader reader = new XmlTextReader(HttpContext.Current.Server.MapPath("~/App_Data/Questions.xml"));
try
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Enquete>), new XmlRootAttribute("enqueteSysteem"));
return (List<Enquete>)(serializer.Deserialize(reader));
}
finally
{
reader.Close();
}
}
public static Enquete GetEnqueteName(string name)
{
foreach (Enquete e in GetAllEnquetes())
{
if (e.Name == name)
return e;
}
return null;
}
哪个正常(此代码位于带有App_data的类中)。
接下来,我想检索所有名称并将其显示在列表框中。
但我究竟如何检索名字? <Enquete Name ="">
并列出我的列表框控件中的所有内容? (通过asp.cs文件)
我的xml结构如下所示:
<enqueteSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Enquete Name="test">
<Questions>
<Question QuestionText="testtest" QuestionType="na"></Question>
</Questions>
</Enquete>
</enqueteSystem>
答案 0 :(得分:0)
检索所有名称
var serializedEnquetes = XDocument.Parse(serializedXml);
IEnumerable<string> names = serializedEnquetes
.Descendants("Enquete")
.Attributes("Name")
.Select(a => a.Value);
然后只需使用'names'集合作为列表框的来源