首页 > 学院 > 开发设计 > 正文

Xml序列化去掉命名空间,去掉申明

2019-11-17 02:17:36
字体:
来源:转载
供稿:网友

xml序列化去掉命名空间,去掉申明

#region 序列化 /// <summary> /// 序列化 /// </summary> /// <param name="type">类型</param> /// <param name="obj">对象</param> /// <returns></returns> public string Serializer(Type type, object obj) { MemoryStream Stream = new MemoryStream(); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", "");//把命名空间设置为空,这样就没有命名空间了 XmlSerializer xml = new XmlSerializer(type); try { //序列化对象 xml.Serialize(Stream, obj,ns); } catch (InvalidOperationException) { throw; } Stream.Position = 0; StreamReader sr = new StreamReader(Stream); string str = sr.ReadToEnd(); sr.Dispose(); Stream.Dispose(); return str; } #endregion

  public static string ObjectToXmlSerializer(Object Obj)        {            XmlWriterSettings settings = new XmlWriterSettings();            //去除xml声明            settings.OmitXmlDeclaration = true;            settings.Encoding = Encoding.Default;            System.IO.MemoryStream mem = new MemoryStream();            using (XmlWriter writer = XmlWriter.Create(mem, settings))            {                //去除默认命名空间xmlns:xsd和xmlns:xsi                XmlSerializerNamespaces ns = new XmlSerializerNamespaces();                ns.Add("", "");                XmlSerializer formatter = new XmlSerializer(Obj.GetType());                formatter.Serialize(writer, Obj, ns);            }            return Encoding.Default.GetString(mem.ToArray());        }源网址:http://www.VEVb.com/kissdodog/archive/2013/12/10/3468385.html

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表