如何使用 Linq to XML 更新 XML 文件?

发布于 2024-12-21 17:47:06 字数 1036 浏览 0 评论 0原文

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"
??????

XML File

<?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>

I have this empty xml template. I am wondering to how to update / insert value in the elements of this xml using LInq?

Thats what I am trying... needs direction...

 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"
??????

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眉目亦如画i 2024-12-28 17:47:06

您当前正在创建匿名类型对象的列表

 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 区分大小写。

You are currently creating a list of anonymous type objects with

 from i in Doc.Descendants("Section")
 select new { ... }

Instead, create a list of elements to update:

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(...);

Note that XML is case-sensitive.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文