2017-06-23 7 views
0

いくつかの要素の値を変更したいが、コードが機能していない。XMLファイル内の要素の値を変更するにはどうすればよいですか?

<?xml version="1.0" encoding="utf-8"?> 
<data> 
    <application id="1"> 
    <applicationName>Instagram</applicationName> 
    <username>test</username> 
    <password>123</password> 
    <info>test</info> 
    </application> 
</data> 

そして、このC#コード:

string applicationName = "Test"; 
XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load("Data.xml"); 
XmlNode node = xmlDoc.SelectSingleNode("/data/application[@id='1']/applicationName"); 
node.InnerText = applicationName; 
xmlDoc.Save("Data.xml"); 

XMLファイル内applicationNameを変更するための正しいコードは何ですか 私はこのXML-ファイルがありますか?

+0

ここにすべてのユーザーの代わりに:完全なコードとデータで質問を投稿していただきありがとうございます。大いに感謝します –

+2

[C#のXmlDocumentとXmlNodeで既存のXMLファイルを変更する方法](https://stackoverflow.com/questions/2558787/how-to-modify-existing-xml-file-with-xmldocument) - と-xmlnode-in-c-sharp) –

+0

[XDocumentの代替](https://stackoverflow.com/q/18508765/60761) –

答えて

0

使用LINQXDocument

string applicationName = "Test"; 
XDocument xdocument = XDocument.Load("Data.xml"); 
var appName = xdocument.Elements("applicationName").Single(); 
appName.Value = applicationName; 
xdocument.Save("Data.xml"); 

しかし、あなたが最初にあなたのusingディレクティブにSystem.Xml.Linqを追加する必要があります。

+0

これは*アプローチですが、特に問題のコードがうまく動作するとは思わないので、特に気になりません。 –

+0

@MarcGravell BTW私はできるだけLINQと 'XDocument'を使うことをいつも好みます。 –

+0

時にはそれは完全に有効です。いくつかのツールには利点と目標のシナリオがあります(サポートされていないシナリオも同様です)。*人が不適切なツール*を使用しているときは、「最初に正しいツールを使う」と言うのはまったく正当です。しかし、この場合、どちらのツールも完璧で妥当な選択肢であり、*良い、客観的、理由が述べられていない限り*、IMOは、既存の*正当な正当な*ツール選択肢で作業するのを助けるほうがよい。この場合、問題のコードはすでに完全に動作しており、正確なことが必要です。それは文字通りゼロ変更を必要とします。 –

関連する問題