C#对象序列化,去除XML等文件的BOM头信息,XML的默认声明等

by 好大一小白 2013.9.11 11:30

以XML序列化为例,一般使用API:

//
        // 摘要:
        //     使用指定的 System.IO.Stream 序列化指定的 System.Object 并将 XML 文档写入文件。
        //
        // 参数:
        //   stream:
        //     用于写入 XML 文档的 System.IO.Stream。
        //
        //   o:
        //     要序列化的 System.Object。
        //
        // 异常:
        //   System.InvalidOperationException:
        //     序列化期间发生错误。使用 System.Exception.InnerException 属性时可获得原始异常。
        public void Serialize(Stream stream, object o);
这样生成的是有BOM头信息的。而且XML是有默认的命名空间和声明等。
可以自定义一个xml的setting,使用new UTF8Encoding(false); 去掉BOM信息。
使用代码:
               XmlWriterSettings xws = new XmlWriterSettings();
                xws.Encoding = new UTF8Encoding(false); 
                xws.OmitXmlDeclaration = true;  //去掉xml的声明
                XmlWriter xtw = XmlWriter.Create(ms, xws);
                XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                ns.Add("", "");//去掉默认命名空间
                xml.Serialize(xtw, writeableObj, ns);
 
 
 
 

Tags: , , , , ,

Windows Phone 7 | Windows8

不允许评论

微信赞

本站统计

36 篇文章
5 个单页
12 条评论
12 次评分
1315506 次访问
访问统计开始于 2010年4月24日
平均日访问 224 次
当前 2 人在线

声明

本博所有网友评论不代表本博立场,版权归其作者所有。 
苏ICP备09004001号
Powered by BlogYi.net  edit by 1wanweb.com
© Copyright 2008-2017