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

本文关键字:元素 添加 XML 使用 最后一个 Linq | 更新日期: 2023-09-27 18:29:40

我需要使用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 在<country>元素之前插入新元素<stock></stock>

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

// 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");