以编程方式附加特定父节点并将节点添加到特定位置

时间:2017-12-27 22:02:35

标签: c# xml

这是我的示例xml enter image description here

我正在通过linq查询找到EmpNo,如

var doc = XDocument.Parse(fileContent);
var articleValueFromXML =
from item in doc.Elements("MainHeader").Elements("EmpDetail").Elements("Details").Elements("Department").Elements("Unit")   
 where (string) item.Element("EmpNo") == "4444"
 select item;

现在我想在名为Details

的标记<Skills>.Net</skills>上方添加节点

将有多个EmpDetail节点。如果我找到EmpNo,我想在Details和Details EmpDetail节点下添加节点。我是怎么做到的?

1 个答案:

答案 0 :(得分:2)

这并不难。

你写的代码太多了。

阅读helpful documentation on MSDN regarding LINQ to XML

你想要这样的东西:

var details =
    from detail in xml.Descendants("EmpDetail")
    where detail.Descendants("EmpNo").FirstOrDefault()?.Value == "4444"
    select detail;

foreach (var detail in details)
{
    detail.Add(new XElement("Skills", "C#"));
}