2011-07-22 15 views
1

私はこのようなレコードセットを持つXML文書を持っています。linq更新の問題

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

私はこの方法をwrtten 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"); 

      } 

私が見つけた値を読み取ることができますが、私はd.SetElementValue( "TPGS"、 "テスト")を使用する場合、何も更新されません。 タグは既にXMLファイルにあります。

+0

「何も更新されません」と言われると、それはファイルに更新されていない、またはメモリ内に更新されていないと言っていますか? –

+0

データにはの代わりに

答えて

2

あなたが戻ってファイルに更新されたXMLを保存したい場合は、あなたがする必要があります。

root.Save(xml_path); 

私はあなたのプログラムの終了tの行を追加し、正常に動作するようです。

+0

それでした!私はd.saveを使用していました。私はxmlファイルをeレコードセットで書きました。再度ありがとう – Mike

+0

私は助けることができてうれしい! –