DataSetのXmlSerializeで空白が消える - .NET開発者中心(元VB研)会議室 を試してたついでにメモ。
.NET 2.0 以降なら、XmlReaderSettings.IgnoreWhitespace プロパティ (System.Xml) で設定可能です。
こんな感じ
var reader = XmlReader.create(path, new XmlReaderSettings() { IgnoreWhitespace = true });
他の設定項目や規定値もここに載ってます。
XML リーダーの作成
※.NET 1.1 について以下書いていますが、未検証。.NET 2.0 の環境でしか動かしてません。
.NET 1.1 なら、XmlTextReader.WhitespaceHandling プロパティ に WhitespaceHandling 列挙体 を設定する。
こんな感じ
XmlTextReader reader = new XmlTextReader(path); reader.WhitespaceHandling = WhitespaceHandling.None;
ちなみに、DataSet の ReadXml DataSet.ReadXml メソッド (XmlReader) に渡す場合には、XmlValidatingReader クラス でラップしてやらないと、WhitespaceHandling のどれを指定しても空白を「有効に」出来ませんでした。
XmlTextReader textReader = new XmlTextReader("./data.xml"); textReader.WhitespaceHandling = WhitespaceHandling.All; XmlReader reader = new XmlValidatingReader(textReader); // XmlValidatingReader でラップしないと、WhitespaceHandling.All を指定しても空白がトリムされる。 DataSet dataset = new DataSet(); dataset.ReadXml(reader);