我有一个格式如下的 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">
但我无法正确生成它。
最佳答案
你很接近,但你希望 name 是 XAttribute
而不是 XElement
:
XDocument doc = XDocument.Load(spath);
XElement root = new XElement("Snippet");
root.Add(new XAttribute("name", "name goes here"));
root.Add(new XElement("SnippetCode", "SnippetCode"));
doc.Element("Snippets").Add(root);
doc.Save(spath);
关于c# - 在 C# 中向 xml 文件添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931650/