阻止XmlSerializer格式化输出
当使用XmlSerializer的默认设置时,它将输出XML作为格式化值。
IE:沿着这些方向发展。
12345 10.32 45632 5.43
如何防止输出上的任何类型的格式? 所以我想要实现的是这个。
123456 10.57 789123 133.22
编辑:我的方法的完整代码是
public static String Serialize(Stock stock) { XmlSerializer serializer = new XmlSerializer(typeof(Stock)); using (StringWriter stringWriter = new StringWriter()) { serializer.Serialize(stringWriter, stock); return stringWriter.ToString(); } }
不是很直观,但XmlWriterSettings
上的Indent
属性控制整个格式:
var serializer = new XmlSerializer(typeof(MyClass)); using (var writer = new StreamWriter("file.path")) using (var xmlWriter = XmlWriter.Create(writer, new XmlWriterSettings { Indent = false })) { serializer.Serialize(xmlWriter, myObject); }
您可能想要探索的XmlWriterSettings
上还有一些选项。
解析生成的XML并删除换行符和标签很简单…
使用’Indent = false’,仍会将元素放在换行符上吗?
..
XmlSerializer xmlser = new XmlSerializer(...); XmlWriterSettings settings = new XmlWriterSettings {Indent = false}; using (XmlWriter xw = XmlWriter.Create(stream, settings)) {
…