[C#] XMLを文字列で読み込んでファイルに書き出す
スキーマファイルの仕様が頻繁に変わり、設定を保存してあるXMLが開けなくなるのが煩わしくてXMLコンバータを作ったときのログです。
XMLを文字列として読み込む
// XmlDocument を new する. XmlDocument xmlDocument = new XmlDocument(); // Xmlファイルの読み込み. // Load() は戻り値がないので, try - catch で受けます. try { xmlDocument.Load(filePath); } catch (Exception ex) { // error 処理. }
Xmlを改行/インデントも含めて文字列にする
// StringWriter を new する. StringWriter stringWriter = new StringWriter(); // XmlDocument の中身を, StringWriter に書き出す. xmlDocument.Save(stringWriter); // 文字列に変換する. string str = stringWriter.ToString(); // StringWriter を閉じる. stringWriter.Close();
文字列を改行ごとに読み出して、書き出す
// ファイル書き込みのために, StreamWriter を使用する. StreamWriter streamWriter = new StreamWriter( strExportPath, false, System.Text.Encoding.GetEncoding("utf-8") ); // 改行ごとに読み出すために, StringReader を使用する. StringReader stringReader = new StringReader(strXml); // Peek() を使ってループさせる. while (-1 < stringReader.Peek()) { string strLine = stringReader.ReadLine(); // --- 編集したりする ---. // このとき,不要な行を書き出さなかったり,必要な個所に新しく追加したりする. // Xml へは, WriteLine() で書き出す. streamWriter.WriteLine(strLine); } // StreamWriter, StringReader を閉じる. streamWriter.Close(); stringReader.Close();
おしまい。
ディスカッション
コメント一覧
まだ、コメントがありません