使用Linq-to-xml插入并保存xml
本文关键字:保存 xml 插入 Linq-to-xml 使用 | 更新日期: 2023-09-27 17:58:55
如果我有一个类似下面的XML文件settings.xml
<Root>
<First>
</First>
</Root>
我首先使用XDocument settings = XDocument.Load("settings.xml")
加载XML
我应该如何在节点First
中插入一个XML节点,并使用LINQ to XML保存它?
首先需要找到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>
[Edit]奖金问题的答案。如果第一个元素不存在,我想创建它,该怎么办:
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"));