1
如果我有像下面插入和使用LINQ to XML
<Root>
<First>
</First>
</Root>
我应该如何插入节点First
内部的XML节点我首先加载使用XDocument settings = XDocument.Load("settings.xml")
XML中的一个XML文件settings.xml
保存的xml和使用LINQ-to-XML保存它?
如果我有像下面插入和使用LINQ to XML
<Root>
<First>
</First>
</Root>
我应该如何插入节点First
内部的XML节点我首先加载使用XDocument settings = XDocument.Load("settings.xml")
XML中的一个XML文件settings.xml
保存的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>
[编辑]奖励问题的答案。怎么做,如果第一个元素不存在,我想创建它:
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"));
感谢亚历克斯的答案 – Lamps 2011-06-13 06:15:15
@Bhaskar的K - 我刚才看到的答案标记,然后就不见了? :( – 2011-06-13 06:18:41
有时如果节点“第一”可能不存在,我该如何检查并创建该节点,然后在其下创建子节点。 – Lamps 2011-06-13 06:18:54