我正在尝试在文件中的特定点插入元素,然后将该文件保存。但是,我似乎无法做到正确。我的XML布局是这样的:
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<Items />
<Users />
</Settings>
这是我目前的代码:
XDocument xd = XDocument.Load(@"C:\test.xml");
var newPosition = xdoc.Root.Elements("Users");
//I've tried messing around with newPosition methods
XElement newItem = new XElement("User",
new XAttribute("Name", "Test Name"),
new XAttribute("Age", "34"),
);
//how can I insert 'newItem' into the "Users" element tag in the XML file?
xd.Save(new StreamWriter(@"C:\test.xml"));
我想使用Linq to XML将'newItem'插入到标记中。感谢您的帮助。
答案 0 :(得分:2)
只需找到Users元素,然后附加它:
// Note that it's singular - you only want to find one
XElement newPosition = xdoc.Root.Element("User");
XElement newItem = new XElement("User",
new XAttribute("Name", "Test Name"),
new XAttribute("Age", "34"));
// Add the new item to the collection of children
newPosition.Add(newItem);
您在此使用var
导致您误入歧途 - 因为您的代码中的newPosition
类型确实是IEnumerable<XElement>
...您找到所有 User
个元素。 (好吧,实际上只有 一个元素,但那是无关紧要的...它在概念上仍然是一个序列。)