我有一个看起来像
的XML文档<Settings>
<Config>
<type>stuff</type>
<length>stuff</length>
<ID>1</ID>
</Config>
</Settings>
我试图使用
附加到它Document loadedDoc = XDocument.Load (file);
loadedDoc.Element("Settings").Add(new XElement("Config"),
new XElement("type", "stuff"),
new XElement("length", "stuff"),
new XElement("ID", "2"));
loadedDoc.Save(file);
当我这样做时,我得到的是
<Settings>
//the other configs hidden for readability
<Config /> <--- WHAT DO?! 0_o
<type>stuff</type>
<length>stuff</length>
<ID>2</ID>
</Settings>
有更好的精通linq的人能告诉我它是什么我做错了让它创建一个像这样的空配置元素?谢谢!
答案 0 :(得分:4)
您需要通过“Config”元素的构造函数添加子元素,而不是通过“Settings”构造函数:
loadedDoc.Element("Settings").Add(new XElement("Config",
new XElement("type", "stuff"),
new XElement("length", "stuff"),
new XElement("ID", "2")));
答案 1 :(得分:3)
那是因为您要附加到“设置”,而不是“配置”
尝试:
loadedDoc.Element("Settings").Add(
new XElement("Config",
new XElement("type", "stuff"),
new XElement("length", "stuff"),
new XElement("ID", "2")));
答案 2 :(得分:1)
试试这个
XDocument loadedDoc = XDocument.Load(file);
loadedDoc.Element("Settings").Add(new XElement("Config"));
loadedDoc.Element("Settings").Element("Config").Add(
new XElement("type", "stuff"),
new XElement("length", "stuff"),
new XElement("ID", "2"));
loadedDoc.Save(file);