2017-01-14 4 views
0

Ive eine Klasse Person bekam (Name, Adresse, Auto, List) und ein XML-Dokument mit diesen Werten:C# durchlaufen mehrere XML-Knoten (und untergeordnete Knoten) und schreiben Sie an einem Objekt

<person> 
    <Name>Miller</name> 
    <Car>BMW</car> 
</person> 
<person> 
    <name>Smith</name> 
    <adress>New York</adress> 
    <Pets> 
    <pet>Cat</pet> 
    <pet>Dog</pet> 
    </pets> 
</person>.... 

Wie kann ich durch diese Knoten und Unterknoten (und Unterknoten, falls vorhanden, und Unterknoten ....) iterieren und alles auf meine Liste schreiben?

Danke

+0

Haben Sie versucht, xmlwriter? – Prajwal

Antwort

0

xml Linq verwenden. Sie können von einer Datei laden, indem Sie die Parse() - Methode durch die Load() -Methode ersetzen:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 
using System.Data; 

namespace ConsoleApplication42 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string xml = 
       "<Root>" + 
       "<person>" + 
       "<name>Miller</name>" + 
       "<car>BMW</car>" + 
       "</person>" + 
       "<person>" + 
       "<name>Smith</name>" + 
       "<address>New York</address>" + 
       "<pets>" + 
        "<pet>Cat</pet>" + 
        "<pet>Dog</pet>" + 
       "</pets>" + 
       "</person>" + 
       "</Root>"; 

      XDocument doc = XDocument.Parse(xml); 
      Person.people = doc.Descendants("person").Select(x => new Person() { 
       name = (string)x.Element("name"), 
       car = (string)x.Element("car"), 
       address = (string)x.Element("address"), 
       pets = x.Descendants("pet").Select(y => (string)y).ToList() 
      }).ToList(); 
     } 

    } 
    public class Person 
    { 
     public static List<Person> people { get; set; } 
     public string name { get; set; } 
     public string car { get; set; } 
     public string address { get; set; } 
     public List<string> pets { get; set; } 
    } 


} 
Verwandte Themen