如果只有xml数据可用,如何使用LINQ to XML插入新节点?

时间:2011-10-07 12:01:23

标签: c# asp.net xml linq linq-to-xml

我有一个xml文件,其结构如下:

<connections>
  <connection>   
    <serverName>serverName1</serverName>
    <dbName>dbName1</dbName>   
  </connection>
</connections>

我有一个新的连接作为文本数据,如下所示:

var xml="<connection><serverName>serverName2</serverName><dbName>dbName2</dbName></connection>";

var xDocument = XDocument.Load(HttpContext.Current.Server.MapPath(this.XmlDataFilePath));

如何将此新节点插入我的文档?

我尝试了这个,但失败了:

 xDocument.Root.AddAfterSelf(xml);

 xDocument.Save(HttpContext.Current.Server.MapPath(this.XmlDataFilePath));

谢谢,

1 个答案:

答案 0 :(得分:11)

将XML解析为XElement,然后添加:

var element = XElement.Parse(xml);
xDocument.Root.Add(element);

请注意,这是 not AddAfterSelf - 您无法添加第二个根元素作为第一个根元素。上面的代码将在任何现有的 根元素之后添加一个新的元素。