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

时间:2012-12-24 13:28:37

标签: c# xml

  

可能重复:
  Need to update a string value in XML using C#

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

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

我想循环throgh元素,以便我可以将区域B的“publishState”更新为“Unpublished”。我只能更新区域A的publishState。

任何人都可以告诉我如何到达区域B并更新该区域的发布状态。

此致

2 个答案:

答案 0 :(得分:0)

您只需使用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);

答案 1 :(得分:0)

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

    using System.Xml.Linq;

像这样加载你的文件

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

然后查看此Link

中的“查询您的数据”部分