在列表框中显示xml项(XlmSerialiser)

时间:2010-12-13 08:55:45

标签: c# asp.net

我有以下反序列化方法:

   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>

1 个答案:

答案 0 :(得分:0)

检索所有名称

var serializedEnquetes = XDocument.Parse(serializedXml);
IEnumerable<string> names = serializedEnquetes
                                .Descendants("Enquete")
                                .Attributes("Name")
                                .Select(a => a.Value);

然后只需使用'names'集合作为列表框的来源