2010-12-13 26 views
0

我有以下Deserialize方法:(此代码位于一类withing APP_DATA)显示XML的项目在一个列表框(XlmSerialiser)

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;  

} 

哪些工作正常。

接下来我想检索所有的名字并将它们显示在列表框中。

但我如何检索名称? <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

检索所有的名字

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

然后简单地用“名”集合为一个源您的列表框