Добавление элементов в XML-файл на C #

У меня есть XML-файл форматируется следующим образом:

<Snippets>
  <Snippet name="abc">
    <SnippetCode>
      testcode1
    </SnippetCode>
  </Snippet>

  <Snippet name="xyz">
    <SnippetCode>      
     testcode2
    </SnippetCode>
  </Snippet>

  ...

</Snippets>

Я могу успешно загружать элементы с помощью XDocument, но у меня возникают проблемы с добавлением новых элементов (есть много функций, и большинство из них, которые я пробовал, не сработали для меня). Как это сделать? Новый элемент будет содержать тег имени фрагмента и тег кода фрагмента. Мой предыдущий подход заключался в том, чтобы открыть файл и вручную создать элемент, используя строку, которая, хотя и работает, является очень плохой идеей.

Что я пробовал:

XDocument doc = XDocument.Load(spath);
XElement root = new XElement("Snippet");
root.Add(new XElement("name", "name goes here"));
root.Add(new XElement("SnippetCode", "SnippetCode"));
doc.Element("Snippets").Add(root);
doc.Save(spath);

И результат такой:

<Snippet>
    <name>name goes here</name>
    <SnippetCode>
    code goes here
    </SnippetCode>
</Snippet>

Он работает нормально, за исключением того, что тег имени создается неправильно. Оно должно быть

<Snippet name="abc"> 

, но я не могу его правильно сгенерировать.

34
задан NightOwl888 10 February 2018 в 14:03
поделиться