2016-07-10 10 views
1

ich eine XML-Datei haben Daten wie unten enthält ..lesen XML-Datei zur Liste der Zeichenfolge

enter image description here

und ich brauche diese Datei zu lesen und das Array jedes Element bevölkern müssen XML-String durch Komma getrennt werden Element: [ "Adana, 01, Aladağ, 01720", "Adana, 01, Aladağ, 01920", "Adana, 01, Aladağ, 01930" ..]

Diese Datei enthält viele Städte und Codes, so ich brauche Schleife so effizient wie es sein kann.

Ich lese die Datei mit diesem aber es scheint nicht fit wie Sie vermuten;

public List<string> readXmlToList(string filename) 
    { 
     List<string> lines = List<string> lines = new List<string>(); 
     XmlDocument doc = new XmlDocument(); 
     doc.Load(filename); 
     foreach (XmlNode node in doc.DocumentElement.ChildNodes) 
     { 
      lines.Add(
      node.Attributes["City"].ToString()+"," 
      + node.Attributes["code"].ToString()+"," 
      + node.Attributes["name"].ToString()+"," 
      + node.Attributes["Zip"].ToString()); 
     } 
     return lines; 
    } 

Antwort

1

Verwenden Sie XElement, um Sie zu what.It ist einfach.

//using System.Xml.Linq; 
     XElement cities = XElement.Load("fileName"); 
     List<string> list = new List<string>(); 

     foreach (var city in cities.Elements("City")) 
     { 
      StringBuilder cityInfo = new StringBuilder(); 
      cityInfo.Append(city.Attribute("name").Value + ","); 
      cityInfo.Append(city.Attribute("no").Value + ","); 
      foreach (var district in city.Elements("District")) 
      { 
       cityInfo.Append(district.Attribute("name").Value + ","); 
       foreach (var zip in district.Elements("Zip")) 
       { 
        cityInfo.Append(zip.Attribute("code").Value + ","); 
       } 
      } 
      list.Add(cityInfo.ToString()); 
      cityInfo.Clear(); 
     } 
     //do what you want with list 
+0

Cok sagol adaş :) – TyForHelpDude

Verwandte Themen