2016-12-06 4 views
0

Ich versuche, eine Liste von Objekten in gültige XML zu schreiben. Mein Code sieht wie folgt aus basicly:Xml Tags werden falsch codiert

public class Person 
     { 
      public string First { get; set; } 
      public string Last { get; set; } 
     } 

List<Person> people = new List<Person>(); 

XElement elements = new XElement("People", 
         from p in people 
         select new XElement("Person", 
          new XElement("First", p.First), 
          new XElement("Last", p.Last))); 

string output = elements.ToString(); 

Leider ausgegeben, wenn in eine Datei geschrieben wie folgt aussieht:

&lt;People&gt; 
    &lt;Person&gt; 
    &lt;First&gt;Tom&lt;/First&gt; 
    &lt;Last&gt;Hanks&lt;/Last&gt; 
    &lt;/Person&gt; 
&lt;/People&gt; 
XDeclaration declaration = new XDeclaration("1.0", "utf-8", "yes"); 
XProcessingInstruction procInstruction = new XProcessingInstruction("xml-stylesheet", "type='text/xsl'"); 
XElement root = new XElement("Store"); 
XDocument settingsFile = new XDocument(declaration, procInstruction, root); 

       foreach (string key in persistentSettings.Keys) 
       { 
        string value = persistentSettings[key]; 
        if (!string.IsNullOrEmpty(value)) 
        { 
         XElement setting = new XElement("Setting", new XAttribute("Name", key)); 
         setting.Value = value; 
         root.Add(setting); 
        } 
       } 
       settingsFile.Save(SettingsFileName); 

Was ist, dass ich falsch hier?

+0

verwenden musste http://stackoverflow.com/questions/17503725/replace-lt-and -gt-mit-und-in-sql-server – andy

+0

nur ersetzen kann nicht die richtige lösung Ich denke – Kai

+0

http://stackoverflow.com/questions/24908251/writing-and-to-a-xml-file-instead -of-lt-und-gt-in-java – andy

Antwort

0

ich die Parsing-Funktion im Constructor von xElement

XElement setting 
    = new XElement("Setting", new XAttribute("Name", key), XElement.Parse(value)); 

statt

XElement setting = new XElement("Setting", new XAttribute("Name", key)); 
setting.Value = value;