6
votes

Comment désérialiser XML à l'aide de Linq?

Comment puis-je désérialiser ce XML à l'aide de LINQ? Je souhaite créer list <étape> xxx


3 commentaires

Une liste de quoi? Avez-vous défini votre propre cours de liste? Qu'avez-vous essayé jusqu'à présent?


Toute raison de l'utilisation non seulement en utilisant system.xml.serialization.xmlSerializer ?


J'essaie d'utiliser le LINQ vers XML sans succès


3 Réponses :


13
votes
string xml = @"<MySteps>
                <Step>
                    <ID>1</ID>
                    <Name>Step 1</Name>
                    <Description>Step 1 Description</Description>
                </Step>
                <Step>
                    <ID>2</ID>
                    <Name>Step 2</Name>
                    <Description>Step 2 Description</Description>
                </Step>
                <Step>
                    <ID>3</ID>
                    <Name>Step 3</Name>
                    <Description>Step 3 Description</Description>
                </Step>
                <Step>
                    <ID>4</ID>
                    <Name>Step 4</Name>
                    <Description>Step 4 Description</Description>
                </Step>
                </MySteps>";

XDocument doc = XDocument.Parse(xml);

var mySteps = (from s in doc.Descendants("Step")
               select new 
                {
                    Id = int.Parse(s.Element("ID").Value),
                    Name = s.Element("Name").Value,
                    Description = s.Element("Description").Value
                }).ToList();
Heres how you would do it using LINQ. Obviously you should be doing your own error checking.

1 commentaires

Je fais quelque chose de similaire, mais ce code ne renvoie que le premier élément ... pas une liste?



4
votes

LINQ-TO-XML est votre réponse.

List<Step> steps = (from step in xml.Elements("Step")
                    select new Step()
                    {
                        Id = (int)step.Element("Id"),
                        Name = (string)step.Element("Name"),
                        Description = (string)step.Element("Description")
                    }).ToList();


0 commentaires

1
votes

Affichage des réponses ci-dessus dans la syntaxe de méthode Linq

Descendants: xxx

éléments: xxx


0 commentaires