更新IEnumerable <xelement>并保存XML文档C#中的更改

时间:2016-08-03 02:39:08

标签: c# xml linq linq-to-xml ienumerable

<OTPC>
  <OTPCDATA>
    <PROGRAM>LOT676-Q1T2-24 RevB @MC1 PVDB Version 3.8</PROGRAM>
    <TOTAL_QTY>54123</TOTAL_QTY>
    <PASS_QTY>60866</PASS_QTY>
    <FAIL_QTY>3257</FAIL_QTY>
    <FILE_DATE>7/29/2016 10:05:47 AM</FILE_DATE>
    <FILE_TIME>10:05:47</FILE_TIME>
    <STATUS>0</STATUS>
  </OTPCDATA>
....So On---
</OTPC>

以上是XML我需要修改并保存源文档中的更改。可能还有Status=1。我正在过滤XDocument,如下所示。

 XDocument unreadOTPC = XDocument.Load(pathToRead);
 var filteredOTPC = unreadOTPC.Element("OTPC")
                .Descendants("OTPCDATA")
                .Where(x => x.Element("STATUS").Value == "0");

它返回IEnumerable<XElement>。我正在使用filteredOTPC.ForEach(s=>)

更新状态

如何在原始IEnumerable<XElement>实例中更新/合并修改后的XDocument,并在XML源文件中保存更改。

1 个答案:

答案 0 :(得分:2)

&#34; IEnumerable与unreadOTPC分离&#34; 引起一些混乱,如果我正确理解问题,则需要更新{{1}中的promise.catch(function(err) { done(err.message !== 'No reason.' ? new Error('Failed') : undefined); // => Never reached. }); 值并保存文档。

所以,你可以这样做。

STATUS

现在您可以使用任何循环逻辑更新元素。

Xml

选中此Demo