linq更新问题

时间:2011-07-22 17:55:50

标签: c# xml linq

我有一个xml文档,其记录集如此。

<document>
  <row>
    <Pub_Code>OHB-A0011</Pub_Code>
    <Sec>16</Sec>
    <Pags>20</Pags>
    <Copies>1,000</Copies>
    <Binding>Saddle Stitch</Binding>
    <Tab>No tabs</Tab>
    <Qty>0</Qty>
    <Cover>Self Cover</Cover>
    <Tpgs>0</Tpgs>        
  </row>
</document>

我有这样的linq查询:

string xml_path = @"D:\Server-Apps\BooksData.xml"; 
XElement root = XElement.Load(xml_path);

var selected = from myBooks in root.Elements("row") where myBooks.Element("Pub_Code").Value == "OHB-A0011" select myBooks;

 foreach (var d in selected)
          {
              Console.WriteLine("Pub_Code: {0}", d.Element("Pub_Code").Value);
              Console.WriteLine("Cover: {0}", d.Element("Cover").Value);
               d.SetElementValue("Tpgs", "test");

          }

我可以读取值find但是当我使用d.SetElementValue(“Tpgs”,“test”)时;什么都没有更新。 标签已经在xml文件中。

1 个答案:

答案 0 :(得分:2)

如果要将更新的XML保存回文件,则需要执行以下操作:

    root.Save(xml_path);

我在程序结束时添加了一行,它似乎正常工作。