2010-12-13 3 views
0

я следующий метод Deserialize:Отображение элемента XML в ListBox (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;  

} 

Который работает должным образом (этот код находится в классе жгутов 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

получить все имена

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

Затем просто использовать коллекцию «имен» в качестве источника ваш список

Смежные вопросы