[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();
おしまい。




ディスカッション
コメント一覧
まだ、コメントがありません