Export (0) Print
Expand All

XmlReader.ReadElementContentAsBase64 Method

Note: This method is new in the .NET Framework version 2.0.

Reads the element and decodes the Base64 content.

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

'Declaration
Public Overridable Function ReadElementContentAsBase64 ( _
	buffer As Byte(), _
	index As Integer, _
	count As Integer _
) As Integer
'Usage
Dim instance As XmlReader
Dim buffer As Byte()
Dim index As Integer
Dim count As Integer
Dim returnValue As Integer

returnValue = instance.ReadElementContentAsBase64(buffer, index, count)
public int ReadElementContentAsBase64 (
	byte[] buffer, 
	int index, 
	int count
)
public function ReadElementContentAsBase64 (
	buffer : byte[], 
	index : int, 
	count : int
) : int

Parameters

buffer

The buffer into which to copy the resulting text. This value cannot be a null reference (Nothing in Visual Basic).

index

The offset into the buffer where to start copying the result.

count

The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.

Return Value

The number of bytes written to the buffer.

Exception typeCondition

ArgumentNullException

The buffer value is a null reference (Nothing in Visual Basic).

InvalidOperationException

The current node is not an element node.

ArgumentOutOfRangeException

The index into the buffer or index + count is larger than the allocated buffer size.

NotSupportedException

The XmlReader implementation does not support this method.

XmlException

The element contains mixed-content.

FormatException

The content cannot be converted to the requested type.

This method reads the element content, decodes it using Base64 encoding, and returns the decoded binary bytes (for example, an inline Base64-encoded GIF image) into the buffer. For more information, see RFC 1521, "MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies". You can obtain RFCs from the Request for Comments Web site at http://www.rfc-editor.org.

ReadElementContentAsBase64 can only read simple-content elements. The element can contain text, white space, significant white space, CDATA sections, comments and processing instructions. It can also contain entity references, which are automatically expanded. The element cannot have child elements.

This method is very similar to the ReadContentAsBase64 method except that it can only be called on element node types.

If the count value is higher than the number of bytes in the document, or if it is equal to the number of bytes in the document, the XmlReader reads all the remaining bytes in the document and returns the number of bytes read. The next XmlReader method call returns a zero and moves the reader to the node following the EndElement.

If you call Read before all of the element content is consumed, the reader may behave as if the first content was consumed and then the Read method was called. This means that the reader will read all the text until the end element is encountered. It will then read the end tag node, read the next node, and then position itself on the next subsequent node.

The following example reads an inline Base64 encoded image. The Base64 data is embedded within the <image> element. A BinaryWriter is used to create a new binary data file.

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 'Base64DecodeImageFile

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

.NET Compact Framework

Supported in: 2.0

Community Additions

ADD
Show:
© 2014 Microsoft