Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >XmlWriter/XmlReader示例代码

XmlWriter/XmlReader示例代码

作者头像
菩提树下的杨过
发布于 2018-01-23 09:28:00
发布于 2018-01-23 09:28:00
77000
代码可运行
举报
运行总次数:0
代码可运行

在Silverlight项目中,如果您想最大程度的减少xap包的大小,仅使用默认System.Xml命名空间下提供的功能来实现“XML序列化/反序列化”,恐怕XmlReader/XmlWriter将成为唯一选择了,下面是示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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;
            

        }

        
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML
本文介绍了如何使用APEX的Dom和Streams两种方式解析XML,并通过实例进行了展示。
Zero-Zhang
2018/01/05
6610
salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML
在c#中,如何序列化/反序列化一个字典对象?
.Net提供的各种序列化的类,通过使用这些类,. Net对象的序列化和反序列化变得很容易。但是字典对象的序列化并不是那么容易。为此,您必须创建一个能够序列化自身的特殊Dictionary类。在不同的业务案例中,序列化技术可能不同。
程序你好
2018/08/21
3.6K0
【Java 进阶篇】Java XML解析:从入门到精通
XML(可扩展标记语言)是一种常用的数据格式,用于存储和交换数据。在Java中,XML解析是一项重要的任务,它允许您从XML文档中提取和操作数据。本篇博客将从基础开始,详细介绍如何在Java中解析XML文档,包括DOM解析、SAX解析和StAX解析。无论您是XML的新手还是有一些经验的开发者,都能在本文中找到有关Java XML解析的有用信息。
繁依Fanyi
2023/10/25
3.7K0
【Java 进阶篇】Java XML解析:从入门到精通
C# 温故而知新:Stream篇(五)下
对于重写的方法这里不再重复说明,大家可以参考我写的第一篇 以下是memoryStream独有的方法 virtual byte[] GetBuffer() 这个方法使用时需要小心,因为这个方法返回无符号字节数组,也就是说,即使我只输入几个字符例如”HellowWorld”我们只希望返回11个数据就行, 可是这个方法会把整个缓冲区的数据,包括那些已经分配但是实际上没有用到的字节数据都返回出来,如果想启用这个方法那必须使用上面最后一个构 造函数,将publiclyVisible属性设置成true就行,这也是上面那
逸鹏
2018/04/10
1.1K0
C# 温故而知新:Stream篇(五)下
在Web站点中创建和使用Rss源
Rss是将你Web站点的内容与其他人分享的标准方式。Rss代表着:Really Simple Syndication。它不过是一个标准化的XML标记,用于描述你想要分享的内容。因此Rss是一个在你的内容准备好被其他用户所消费时被广泛接受的格式。一些使用Rss的范例站点有:www.asp.net、weblogs.asp.net 和 www.dotnetbips.com 。Dotnetbips.com 通过 Rss 发布新添内容的列表,这个列表可能会被其他的站长放置在他们的站点或目录中。
张子阳
2018/09/30
6730
在Web站点中创建和使用Rss源
22.QT-QXmlStreamReader解析,QXmlStreamWriter写入
XML 用于存储数据,数据的形式类似于树结构(参考: http://www.runoob.com/xml/)
诺谦
2018/07/31
1.5K0
22.QT-QXmlStreamReader解析,QXmlStreamWriter写入
C#执行XSL转换
xsl 可方便的将一种格式的xml,转换成另一种格式的xml,参考下面的代码: using System; using System.IO; using System.Text; using Syst
菩提树下的杨过
2018/01/24
9400
提取网页中的超链接
usingSystem;usingSystem.Xml;usingSystem.Text;网络
Java架构师必看
2021/03/22
1.6K0
XML Serializable Generic Dictionary
    .net 2.0 泛型Dictionary不支持 XML serializable.  下面是一个实现IXmlSerializable 接口实现支持Serialize的泛型集合.Dictionary 。 Dictionary<TKey, TValue>本身实现了ISerializable接口,WebService中无法实现序列化,具体是什么原因它不支持XML序列化。 /// <summary>     /// 支持XML序列化的泛型 Dictionary     /// </summary>    
张善友
2018/01/29
7980
Silverlight中非对称加密及数字签名RSA算法的实现
RSA算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。     到目前Silverlight4 Beta发布为止,Silverlight中仍然没有提供非对称加密及数字签名相关的算法。而.NET Framework中提供的RSA等算法,都是通过操作系统提供的相关API实现的,没法移植到Silverlight中使用。因此很难实现一个健壮点的
葡萄城控件
2018/01/10
1K0
C#中常用的几种读取XML文件的方法
本文转载:http://www.cnblogs.com/xiaoxiangfeizi/archive/2011/07/29/2120807.html
跟着阿笨一起玩NET
2018/09/18
6.2K0
C#中常用的几种读取XML文件的方法
C#判断字符串是否是有效的XML格式数据
在软件开发过程中,经常需要处理XML格式的数据。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输数据。它被广泛应用于配置文件、数据交换和Web服务中。因此,验证一个字符串是否是有效的XML格式数据是一个常见的需求。本文将详细介绍如何在C#中判断一个字符串是否是有效的XML格式数据,并提供一些实用的示例。
Michel_Rolle
2024/10/11
2.7K0
c#复杂XML反序列化为实体对象两种方式
在C#开发中,我们经常需要处理XML数据,将其转换为实体对象。这个过程称为反序列化。反序列化XML可以采用多种方式,但主要有两种常见的方法:使用XmlSerializer和使用DataContractSerializer。本文将详细介绍这两种方法,并提供示例代码。
Michel_Rolle
2024/10/11
2.7K0
Stax解析XML示例代码
package org.itat.stax; import java.io.IOException; import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.Event
HUC思梦
2020/09/03
5680
WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)
消息作为WCF进行通信的唯一媒介,最终需要通过写入传输层进行传递。而对消息进行传输的一个前提或者是一项必不可少的工作是对消息进行相应的编码。WCF提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。在本篇文章我们将对各种编码方式进行消息的讨论。 从互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。有的编码方式是平台无关的,有的则仅限于某种特定的平台。WCF提供了3种典型的编码方式:Binary、Text和MTOM。Binrary以二进制的方式进行消息的编码,但是仅限于.NET平台之
蒋金楠
2018/01/16
8780
C#操作XML方法汇总
一、简单介绍 using System.Xml; //初始化一个xml实例 XmlDocument xml=new XmlDocument(); //导入指定xml文件 xml.Load(path); xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml")); //指定一个节点 XmlNode root=xml.SelectSingleNode("/root"); //获取节点下所有直接子节点 XmlNodeList
跟着阿笨一起玩NET
2018/09/18
3.2K0
【C# XML 序列化】开篇
XML 序列化中的中心类是 XmlSerializer 类,此类中最重要的方法是 Serialize 和 Deserialize 方法 。XmlSerializer 创建 C# 文件并将其编译为 .dll 文件,以执行此序列化。XML 序列化程序生成器工具 (Sgen.exe) 旨在预先生成要与应用程序一起部署的这些序列化程序集,并改进启动性能。XmlSerializer 生成的 XML 流符合万维网联合会 (W3C) XML 架构定义语言 (XSD) 1.0 建议。而且,生成的数据类型符合文档“XML 架构第 2 部分:数据类型”。
用户9127601
2023/12/15
5970
【C# XML 序列化】开篇
Unity3D--网络(三)服务器返回的数据解析
使用Unity做游戏开发,包括以后的VR游戏等联网功能是必不可少的,所以跟服务器打交道也就必不可少。其实在其他语言开发环境中也需要与服务器打交道,而所使用的数据格式都是一样的。所以说,我们可以不会搭建服务器的业务逻辑,但是服务器返回给客户端的数据,是我们必须要会的。
孙寅
2020/06/02
1.4K0
XML 的4种解析方式
该文章介绍了如何利用XPath在XML文档中查询信息。它首先介绍了XPath的基本概念,然后详细讲解了如何在Java中使用XPath进行查询。文章还介绍了一些实用的示例,包括如何查询XML文档中的节点值、如何获取特定的节点,以及如何利用XPath进行XML文档的遍历。此外,文章还探讨了XPath的常见问题和解决方法。
IT可乐
2018/01/04
5K0
XML 的4种解析方式
C#在WINForm程序中创建XML文件
string path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
zls365
2021/02/26
2.6K0
相关推荐
salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档