質問: (ReadingXML.Audit)serializer.Deserialize(inputStream); ``` 一度、XMLファイルの2~5,及び最終行の削除を行った後、 上記のコードを実行した結果、modelが取得できた経緯があり、 2~5行目,及び最終行が読み込みの際にスキップされれば やりたいことが実装できるのですが、StreamReaderやら、StreamWriterなど使用してみても、 うまくいかなかったです。 inputStreamのoptionで特定行の削除が無かったため、 どうしても手を拱いてしまっています。 よろしくお願いします。
回答: 編集処理が一意ならば、一度文字列として読込み、編集処理を行った文字列をデシリアライズしてはどうでしょうか。 ``` //ファイルをstring配列で読み出し var lines = File.ReadAllLines(filePath); //ここで読み込んだXMLファイルの2~5および最終行を削除 var newXml = string.Join("\r\n", lines.Where((line, index) => index == 0 || (index >= 5 && index != lines.Length - 1))); //削除を行ったXML(文字列)をStringReaderで読み込み var sr = new StringReader(newXml); XmlSerializer serializer = new XmlSerializer(typeof(ReadingXML.Audit)); //StringReader経由でデシリアライズ ReadingXML.Audit model = (ReadingXML.Audit)serializer.Deserialize(sr); ```