2017-10-19 10 views
0

を使用してXML要素の値にアクセスすることができます:私は成功したレコードを選択していどのように私は次のような構造で、C#を使用して、XMLドキュメント内のレコードを編集しようとしているXdocument

<?xml version="1.0" standalone="yes"?> 
<Questionnaire> 
    <Record> 
    <Pile>1</Pile> 
    <Serno>1</Serno> 
    </Record> 
</Questionnaire> 

使用して:

SernoID=txt_Serno.Text; 
XElement xml = XElement.Load("path"); 
XElement x = xml.Elements().Where(p => p.Element("Serno").Value.Equals(sernoID.ToString())).First(); 

今、ユーザーはWinフォーム内のデータを変更した場合、私はそのために私が使用している、xmlファイルにそれを更新する:

x.Element("Pile").Value = txt_pile.Text; 
x.Save("path"); 

ただし、変更されたレコードのみを保持し、他のすべての既存のレコードを削除します。おそらくsaveコマンドと関係がありますか?

誰でも助けてください。

ありがとうございます!

+1

'x'を保存せず、' xml'を保存しますか? – CodeCaster

+0

x.Save(パス); 1つのユニットテストで私のために働く?それは、XMLオブジェクトがロードと更新の間でどのように保持されるかです。 –

+0

ノードではなく 'XDocument'を保存します。 – Amy

答えて

2

xはクエリの結果であるため、単一のRecord要素です。それを指定されたパスのファイルに保存します。これは、この単一要素だけでファイルを上書きするという効果があります。

前と同じように、あなたの変更を行いますが、この行を変更:これに

x.Save("path"); 

を:

xml.Save("path"); 

これは全体文書だけではなく、単一の要素を保存します。

関連する問題