2016-12-06 3 views
0

Я пытаюсь написать список объектов в действительный xml. Мой код выглядит поясню, как это:Xml Тэги ошибочно закодированы

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(); 

К сожалению вывода при записи в файл выглядит следующим образом:

&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); 

Что является то, что я делаю неправильно здесь?

+0

http://stackoverflow.com/questions/17503725/replace-lt-and -gt-with-and-in-sql-server – andy

+0

просто замена не может быть правильным решением. Я думаю, – Kai

+0

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

ответ

0

я должен был использовать функцию синтаксического анализа в Конструктора из xElement

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

вместо

XElement setting = new XElement("Setting", new XAttribute("Name", key)); 
setting.Value = value; 
Смежные вопросы