如何使用Linq更新XML文件到XML

本文关键字:XML 文件 更新 何使用 Linq | 更新日期: 2023-09-27 18:18:12

XML文件

<?xml version="1.0" encoding="utf-8"?>
<Section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Information Section">
  <ID></ID>
  <alternateID />
  <familyName></familyName>
  <givenName></givenName>
  <birthDate></birthDate>
  <age></age>
  <height />
  <weight />
  <sex></sex>
  <Address>
    <street1 />
    <street2 />
    <city />
    <state />
    <zipCode />
    <country />
  </Address>
</Section>

我有这个空的xml模板。我想知道如何使用LInq在这个xml的元素中更新/插入值?

这就是我正在尝试的…需求方向…

 var Doc = XDocument.Load("Info.xml");
    var items = from i in Doc.Descendants("Section")
                select new
                {
                  ID = p.Element("ID").Value
                }
    foreach (var item in items)
          item.id = "VALUE"
??????

如何使用Linq更新XML文件到XML

您正在使用

创建一个匿名类型对象列表
 from i in Doc.Descendants("Section")
 select new { ... }

应该创建一个要更新的元素列表:

var items = from i in Doc.Descendants("Section")
     select i;
foreach (var item in items)
{
   item.Element("ID").Value = "VALUE";
   item.Element("Foo").Value = "Foo";
}
Doc.Save(...);

注意XML是区分大小写的。