如何循环遍历xml元素以使用C#更新一个元素

本文关键字:元素 更新 一个 何循环 循环 遍历 xml | 更新日期: 2023-09-27 17:49:20

可能重复:
需要使用C#更新XML中的字符串值

我有一个xml文件,如下所示:

<MediaContent>
  <PublishInfo region="A"  publishState="NotPublished"  />
  <PublishInfo region="B"  publishState="Published"  />
<MediaContent/>

我想循环遍历元素,这样我就可以将区域B的"publishState"更新为"Unpublished"。我只能更新区域A的发布状态。

有人能告诉我如何到达B地区并更新该地区的发布状态吗。

问候

如何循环遍历xml元素以使用C#更新一个元素

您只需使用LINQ to XML:就可以做到这一点

XDocument xdoc = XDocument.Load(path_to_xml);
// get PublishInfo elements with region B
var query = xdoc.Descendants("PublishInfo")
                .Where(pi => (string)pi.Attribute("region") == "B");
// update elements
foreach (var element in query)
    element.Attribute("publishState").Value = "NotPublished";
// save xml
xdoc.Save(path_to_xml);

一个简单的方法是使用Linq2Xml。包括

    using System.Xml.Linq;

像这样加载你的文件

    XDocument loaded = XDocument.Load(@"C:'test.xml");

然后查看此链接中的"查询您的数据"部分