XmlWriter/XmlReader示例代码
2024-10-12 23:15:50
在Silverlight项目中,如果您想最大程度的减少xap包的大小,仅使用默认System.Xml命名空间下提供的功能来实现“XML序列化/反序列化”,恐怕XmlReader/XmlWriter将成为唯一选择了,下面是示例代码:
using System.IO; using System.Text; using System.Xml; namespace slLib { public class Person { private string _name = "" ; /// <summary> /// 姓名 /// </summary> public string Name { get { return _name; } set { _name = value; } } private int _age = 0; /// <summary> /// 年龄 /// </summary> public int Age { get { return _age; } set { _age = value; } } /// <summary> /// 将Person实例转化为xml字符串 /// </summary> /// <returns></returns> public string ToXmlString() { MemoryStream ms = new MemoryStream(); XmlWriter writer = XmlWriter.Create(ms); writer.WriteStartDocument(); writer.WriteStartElement( "data" ); writer.WriteStartElement( "person" ); writer.WriteStartElement( "name" ); writer.WriteAttributeString( "type" , "String" ); writer.WriteValue( this .Name); writer.WriteEndElement(); writer.WriteStartElement( "age" ); writer.WriteAttributeString( "type" , "Int32" ); writer.WriteValue( this .Age); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Close(); byte [] bytes = ms.ToArray(); string result = Encoding.UTF8.GetString(bytes, 0, bytes.Length); return result; } /// <summary> /// 从xml字符串给Person实例属性赋值 /// </summary> /// <param name="xmlString"></param> public void FromXmlString( string xmlString) { MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xmlString)); XmlReader reader = XmlReader.Create(ms); reader.Read(); reader.ReadStartElement( "data" ); reader.ReadStartElement( "person" ); string nameType = reader.GetAttribute( "type" ); string nameValue = reader.ReadElementContentAsString(); string ageType = reader.GetAttribute( "type" ); int ageValue = reader.ReadElementContentAsInt(); reader.ReadEndElement(); reader.ReadEndElement(); reader.Close(); this ._name = nameValue; this ._age = ageValue; } } } |
最新文章
- 出现了内部错误-网站中X509Certificate2加载证书时出错
- 循序渐进Python3(十二) --2-- &#160;web框架之django简单实现oracle数据库操作
- Tomcat启动后快逸报表报错的解决方法
- 获取url据对路径写法
- Hibernate检索策略
- TWaver初学实战——如何在EasyUI中插入TWaver(续)
- Java循环语句 while
- 【转】高性能服务器架构(High-Performance Server Architecture)
- 使用face_recognition批量识别图片中的人数
- Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot
- 如何使用ffmpeg
- Xamarin&#160;2017.11.9更新
- 实用ExtJS教程100例-005:自定义对话框Ext.MessageBox.show
- sort命令的使用,结合uniq, awk等
- 详细说明 配置 Sublime Text 开发node.js(windows)包括sub2和sub3的区别
- Java并发编程里的volatile。Java内存模型核CPU内存架构的对应关系
- PytorchZerotoAll学习笔记(二)--梯度下降之手动求导
- HDU.1596 find the safest road (Floyd)
- [Linux] 服务器镜像定时备份解决方案 crontab+rsync+flock
- svn显示提交人以及时间