У меня есть 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">
, но я не могу его правильно сгенерировать.