在.NET Framework中轻松处理XML数据(4-2)

2016-02-19 20:42 6 1 收藏

今天图老师小编给大家介绍下在.NET Framework中轻松处理XML数据(4-2),平时喜欢在.NET Framework中轻松处理XML数据(4-2)的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - Web开发 】

Figure 7 States for XML Writer

State
Description

Attribute
The writer enters this state when an attribute is being written

Closed
The Close method has been called and the writer is no longer available for writing operations

Content
The writer enters this state when the content of a node is being written

Element
The writer enters this state when an element start tag is being written

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

Prolog
The writer is writing the prolog of a well-formed XML 1.0 document

Start
The writer is in an initial state, awaiting for a write call to be issued

  Writer 把输出文本存在内部的一个缓冲区内。一般情况下,缓冲区会被刷新或者被清除,当Writer被关闭前XML文本应该要写出。在任何时你都可以通过调用Flush方法清空缓冲区,把当前的内容写到流中(通过BaseStream属性暴露流),然后释放部分占用的内存,Writer仍保持为打开状态(open state),可以继续操作。注意,虽然写了部分的文档内容,但是在Writer没有关闭前其它的程序是不能处理该文档的。

  可以用两种方法来写属性节点。第一种方法是用WriteStartAtribute方法去创建一个新的属性节点,更新Writer的状态。接着用WriteString方法设置属性值。写完后,用WriteEndElement方法结束该节点。另外,你也可以用WriteAttributeString方法去创建新的属性节点,当writerr的状态为Element时,WriterAttributeString开始工作,它单独创建一个属性。同样的,WriteStartElement方法写节点的开始标签(),然后你可以随意的设置节点的属性和文本内容。元素节点的闭标签都带”/ ”。如果想写闭标签可以用WriteFullEndElement方法来写。

  应该避免传送给写方法的文本中包含敏感的标记字符,例如小于号()。用WriteRaw方法写入流的字符串不会被解析,我们可以用它来对XML文档写入特殊的字符串。下面的两行代码,第一行输出的是””,第二行输出””:

writer.WriteString("");

writer.WriteRaw("");

  读写流

  有趣的是,reader(阅读器)和writer类提供了基于Base64 和BinHex编码的读写数据流的方法。WriteBase64 和 WriteBinHex方法的功能与其它的写方法的功能存在着细微的差别。它们都是基于流的,这两个方法的功能像一个byte数组而不是一个string。下面的代码首先把一个string转换成一个byte数组,然后把它们写成一个Base64 编码流。Encoding类的GetBytes静态方法完成转换的任务:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

writer.WriteBase64(

Encoding.Unicode.GetBytes(buf),

0, buf.Length*2);

来源:http://www.tulaoshi.com/n/20160219/1624324.html

延伸阅读
标签: Web开发
XMLTextWriter类 用在本节中的方法创建XML文档显然并不困难。多年以来,开发者都是通过在缓存在连接一些字符串,连接好以后再把缓存中字符串输出到文件的方式来创建XML文档。但是以这种方式创建XML文档的方法只有在你保证字符串中不存在任何细小的错误的时候才有效。.NET Framework通过用XMLwriter提供了更好的创建XML文档的方法。 ...
标签: Web开发
ValidationType属性设置验证的类型,它可以是:DTD, XSD, XDR或者none。如果没有指定验证的类型(用ValidationType.Auto选项),阅读器将自动的根据文档用最适合的验证类型。在验证过程中出现任何错误,都会触发ValidationEventHandler事件。如果未提供事件ValidationEventHandler事件处理程序,则抛出一个XML异常。定义ValidationEventHand...
标签: Web开发
分析属性值 大部分情况下,属性值都是一个简单的文本字符串。然而,这并不意味着实际应用中的属性值都是字符型的。有时候,属性值是由许多种类型的数据组合而成的,例如Date或Boolean,这时,你就要用XMLConvert或System.Convevt类的方法把这些类型转换成原来的类型。XmlConvert和System.Convevt类都能实现数据类型的转换,但是XmlCon...
标签: Web开发
XMLReader类 XML阅读器支持一个编程接口,接口用于连接XML文档,“推出”你要的数据。如果你更深入去了解阅读器,你会发现阅读器工作原理类似于我们的桌面应用程序从数据库中取出数据的原理。数据库服务返回一个游标对象,它包含所有查询结果集,并返回指向目标数据集的开始地址的引用。XML阅读器的客户端收到一个指向阅读器实例的引...
标签: Web开发
每个节点的类型是XMLNodeType枚举中的一种,在如图三所示的代码中,我们只用了其中的两种类型:Element 和 EndElement。输出源码重新定制了原始的文档结构,它丢弃或者说是忽略了XML元素的属性和节点内容,只输出了元素节点名。假设我们运用了下面的XML片断: <mags> <mag name="MSDN Magazine"> MSDN Magazine ...

经验教程

967

收藏

10
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部