2010-12-13 4 views
0

Je la méthode deserialize suivante:Affichage élément XML dans une zone de liste (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;  

} 

qui fonctionne correctement (ce code est situé dans une classe App_data sont acceptés dans les).

Ensuite, je veux récupérer tous les noms et les afficher dans une liste.

Mais comment puis-je récupérer les noms? <Enquete Name =""> et la liste de tous ceux dans mon contrôle de la zone de liste? (Dans le fichier asp.cs)

Ma structure xml ressemble à ceci:

<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> 

Répondre

0

pour récupérer tous les noms

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

Ensuite, utilisez simplement la collection 'noms' comme source de votre liste de sélection

Questions connexes