如果我有一个XML文件settings.xml
,如下所示
<Root>
<First>
</First>
</Root>
我首先使用XDocument settings = XDocument.Load("settings.xml")
我应该如何在节点First
中插入XML节点并使用LINQ-to-XML保存它?
答案 0 :(得分:2)
首先,您需要找到First
元素。然后,您可以添加其他元素和属性。
在xml中找到元素的方法不止一种:Elements
,Descendants
,XPathSelectElement
等。
var firstElement = settings.Descendants("First").Single();
firstElement.Add(new XElement("NewElement"));
settings.Save(fileName);
// or
var newXml = settings.ToString();
输出:
<Root>
<First>
<NewElement />
</First>
</Root>
具有属性的元素:
firstElement.Add(
new XElement("NewElement", new XAttribute("NewAttribute", "TestValue")));
输出:
<Root>
<First>
<NewElement NewAttribute="TestValue" />
</First>
</Root>
[编辑] 奖金问题的答案。如果第一个元素不存在并且我想创建它该怎么办:
var root = settings.Element("Root");
var firstElement = root.Element("First");
if (firstElement == null)
{
firstElement = new XElement("First");
root.Add(firstElement);
}
firstElement.Add(new XElement("NewElement"));