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