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

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

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方法来写。

??应当避免传送给写方法的文本中包含敏感的标记字符,例如小于号(

writer.WriteString('

writer.WriteRaw('

??读写流

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

writer.WriteBase64(

Encoding.Unicode.GetBytes(buf),

0, buf.Length*2);

以上就是在.NET Framework中轻松处理XML数据(4-2) 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值