使用Linq在最后一个元素之前添加XML元素

时间:2013-08-30 06:18:58

标签: c# xml linq

我需要使用Linq在XML的最后一个元素之前添加新元素。

例如:

<?xml version="1.0" encoding="utf-8"?>
<products>
  <product id="p1">
    <name>Delta</name>
    <price>800</price>
    <country>Denmark</country>
  </product>
  <product id="p3">
    <name>Alfa</name>
    <price>1200</price>
    <country>Germany</country>
  </product>
</products>

应使用Linq

<stock></stock>元素之前插入新元素<country>

1 个答案:

答案 0 :(得分:0)

// load the XML file into XDocument instance
var doc = XDocument.Load("sourceFile.xml");

// find all <country> elements
var countries = doc.Root.Elements("product").Elements("Country");

// add <stock /> before each <country> elements
foreach(var country in countries)
{
    country.AddBeforeSelf(new XElement("stock"));
}

// save document to the file
doc.Save("sourceFile.xml");