实体序列化生成个性XML ,生成XML节点/属性
来源:互联网 发布:cmd 关闭端口 编辑:程序博客网 时间:2024/06/03 21:32
创建实体
[XmlRoot("root")] public class XML_root { public string template { get; set; } public XML_content content = new XML_content(); [System.Xml.Serialization.XmlIgnore] public List<XML_AchDetail> listdetail = new List<XML_AchDetail>(); } [XmlType("content")] public class XML_content { public NAttribute SPCX = new NAttribute(); public NAttribute JBFY = new NAttribute(); } public class NAttribute { [System.Xml.Serialization.XmlAttribute] public string tablename = "S_XS"; [System.Xml.Serialization.XmlAttribute] public string type = "varchar"; [System.Xml.Serialization.XmlText] public string value { get; set; } } public class XML_AchDetail { [System.Xml.Serialization.XmlText] public string value { get; set; } }
XML实体转换类
public class XmlSerializeHelper { public static string Serialize<T>(T obj) { return Serialize<T>(obj, Encoding.UTF8); } /// <summary> /// 实体对象序列化成xml字符串 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string Serialize<T>(T obj, Encoding encoding) { try { if (obj == null) throw new ArgumentNullException("obj"); var ser = new XmlSerializer(obj.GetType()); using (var ms = new MemoryStream()) { using (var writer = new XmlTextWriter(ms, encoding)) { writer.Formatting = Formatting.Indented; ser.Serialize(writer, obj); } var xml = encoding.GetString(ms.ToArray()); xml = xml.Replace(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", ""); xml = xml.Replace(" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"", ""); return xml; } } catch (Exception ex) { throw ex; } } /// <summary> /// 反序列化xml字符为对象,默认为Utf-8编码 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="xml"></param> /// <returns></returns> public static T DeSerialize<T>(string xml) where T : new() { return DeSerialize<T>(xml, Encoding.UTF8); } /// <summary> /// 反序列化xml字符为对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="xml"></param> /// <param name="encoding"></param> /// <returns></returns> public static T DeSerialize<T>(string xml, Encoding encoding) where T : new() { try { var mySerializer = new XmlSerializer(typeof(T)); using (var ms = new MemoryStream(encoding.GetBytes(xml))) { using (var sr = new StreamReader(ms, encoding)) { return (T)mySerializer.Deserialize(sr); } } } catch (Exception e) { return default(T); } } }
调用函数
XML_root bean = new XML_root(); bean.template = "这里填写内容"; string strxml = XmlSerializeHelper.Serialize<XML_root>(bean);
生成的xml格式为
<?xml version="1.0" encoding="GB2312"?><root> <content> <SPCX tablename="S_XS" type="varchar">0001号</SPCX > <JBFY tablename="S_XS" type="varchar" /> </content> <template>这里填写内容</template></root>
阅读全文
0 0
- 实体序列化生成个性XML ,生成XML节点/属性
- asp.net 类序列化生成xml文件
- Android中XML文件的序列化生成与解析
- Android中XML文件的序列化生成与解析
- Android中XML文件的序列化生成与解析
- Android中XML文件的序列化生成与解析
- 序列化生成XML文件以及Pull解析
- Android中XML文件的序列化生成与解析
- 使用Xml类下的newPullParser ()、newSerializer ()方法,解析xml数据和序列化生成xml数据
- Android学习记录(1)—Android中XML文件的序列化生成与解析
- XMLPULL解析(2)---通过对象序列化生成XML文档
- Xml序列化--根据配置文件直接生成实体类
- 读取XML节点属性
- xml节点属性值
- xml 序列化 实体类
- (转)Android学习记录(1)—Android中XML文件的序列化生成与解析
- sql 生成xml后,向根节点添加属性
- 序列化序列化xml 实体
- 多线程,为每个线程维护变量副本的ThreadLocal,ThreadLocal会造成内存泄漏吗?
- JVM 学习之Heap 知识
- FileReader采用的默认编码 ?
- 【慕课网_性能优化之MySQL优化_学习】【03】
- 计数排序
- 实体序列化生成个性XML ,生成XML节点/属性
- ios app增加ituns文件共享功能
- 使用JAVA向MongoDB中插入数据时报错The method insert(DBObject[]) in the type DBCollection is not applicable
- 线程条件变量
- Mysql数据库主从配置
- 51Nod 1110 距离之和最小 V3(中位数+权值转化为个数)
- 【特征工程】特征选择与特征学习
- codeforces 546B Soldier and Badges
- 我对 js的深复制与浅复制 的理解