XmlReader.ReadElementContentAsBinHex(Byte[], Int32, Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取元素并对 BinHex
内容进行解码。
public:
virtual int ReadElementContentAsBinHex(cli::array <System::Byte> ^ buffer, int index, int count);
public virtual int ReadElementContentAsBinHex (byte[] buffer, int index, int count);
abstract member ReadElementContentAsBinHex : byte[] * int * int -> int
override this.ReadElementContentAsBinHex : byte[] * int * int -> int
Public Overridable Function ReadElementContentAsBinHex (buffer As Byte(), index As Integer, count As Integer) As Integer
参数
- buffer
- Byte[]
结果文本复制到的缓冲区。 此值不能为 null
。
- index
- Int32
缓冲区中的偏移,从这个位置开始将结果复制到缓冲区中。
- count
- Int32
要复制到缓冲区的最大字节数。 此方法返回复制的实际字节数。
返回
写入缓冲区的字节数。
例外
buffer
值为 null
。
缓冲区中的索引或者索引与计数之和大于分配的缓冲区大小。
XmlReader 实现不支持此方法。
该元素包含混合内容。
无法将内容转换成请求的类型。
示例
以下示例读取内联 BinHex
编码的图像。 数据 BinHex
嵌入到元素中 <image>
。 A BinaryWriter 用于创建新的二进制数据文件。
public static void BinHexDecodeImageFile() {
byte[] buffer = new byte[1000];
int readBytes = 0;
using (XmlReader reader = XmlReader.Create("output.xml")) {
FileStream outputFile = new FileStream(@"C:\artFiles\data\newImage.jpg", FileMode.OpenOrCreate,
FileAccess.Write, FileShare.Write);
// Read to the image element.
reader.ReadToFollowing("image");
// Read the BinHex data.
Console.WriteLine("\r\nReading BinHex...");
BinaryWriter bw = new BinaryWriter(outputFile);
while ((readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50))>0) {
bw.Write(buffer, 0, readBytes);
}
outputFile.Close();
}
}
Public Shared Sub BinHexDecodeImageFile()
Dim buffer(999) As Byte
Dim readBytes As Integer = 0
Using reader As XmlReader = XmlReader.Create("output.xml")
Dim outputFile As New FileStream("C:\artFiles\data\newImage.jpg", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write)
' Read to the image element.
reader.ReadToFollowing("image")
' Read the BinHex data.
Console.WriteLine(vbCr + vbLf + "Reading BinHex...")
Dim bw As New BinaryWriter(outputFile)
readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50)
While (readBytes > 0)
bw.Write(buffer, 0, readBytes)
readBytes = reader.ReadElementContentAsBinHex(buffer, 0, 50)
End While
outputFile.Close()
End Using
End Sub
注解
此方法读取元素内容,使用 BinHex
编码解码它,并返回解码的二进制字节 (例如内联 BinHex
编码的 GIF 图像) 缓冲区。
此方法只能读取简单内容元素。 该元素可以包含文本、空白、重大空白、CDATA 节、注释和处理指令。 它还可以包含自动展开的实体引用。 该元素不能有子元素。
此方法与该方法非常相似 ReadContentAsBinHex ,只不过只能在元素节点类型上调用此方法。
count
如果该值高于文档中的字节数,或者如果该值等于文档中的字节数,则XmlReader读取文档中的所有剩余字节并返回读取的字节数。 下一 XmlReader 个方法调用返回零,并将读取器移动到后面的 EndElement
节点。
如果在使用所有元素内容之前调用 Read ,则读取器的行为可能类似于使用第一个内容,然后 Read 调用了该方法。 这意味着读取器将读取所有文本,直到遇到结束元素。 然后,它将读取结束标记节点、读取下一个节点,然后将自身定位在下一个后续节点上。
有关此方法的异步版本,请参阅 ReadElementContentAsBinHexAsync。