XmlReader.ReadElementContentAsBinHex(Byte[], Int32, Int32) XmlReader.ReadElementContentAsBinHex(Byte[], Int32, Int32) XmlReader.ReadElementContentAsBinHex(Byte[], Int32, Int32) XmlReader.ReadElementContentAsBinHex(Byte[], Int32, Int32) Method

定義

要素を読み取り、BinHex の内容をデコードします。Reads the element and decodes the BinHex content.

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[]

結果として得られるテキストのコピー先のバッファー。The buffer into which to copy the resulting text. この値を null にすることはできません。This value cannot be null.

index
Int32 Int32 Int32 Int32

バッファー内の結果のコピー開始位置を示すオフセット。The offset into the buffer where to start copying the result.

count
Int32 Int32 Int32 Int32

バッファーにコピーする最大バイト数。The maximum number of bytes to copy into the buffer. コピーされた実際のバイト数は、このメソッドから返されます。The actual number of bytes copied is returned from this method.

戻り値

バッファーに書き込まれたバイト数。The number of bytes written to the buffer.

例外

buffer 値は null です。The buffer value is null.

現在のノードは要素ノードではありません。The current node is not an element node.

または-or-

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。An XmlReader method was called before a previous asynchronous operation finished. この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

バッファー内のインデックス、またはインデックスとカウントの合計値が、割り当てられているバッファー サイズを超えています。The index into the buffer or index + count is larger than the allocated buffer size.

XmlReader 実装が、このメソッドをサポートしていません。The XmlReader implementation does not support this method.

要素には混合コンテンツが含まれます。The element contains mixed-content.

コンテンツを要求された型に変換できません。The content cannot be converted to the requested type.

次の例では、読み取るインラインBinHexエンコードされたイメージ。The following example reads an inline BinHex encoded image. BinHex内にデータが埋め込まれて、<image>要素。The BinHex data is embedded within the <image> element. ABinaryWriter新しいバイナリ データ ファイルを作成するために使用します。A BinaryWriter is used to create a new binary data file.

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

注釈

このメソッドは要素の内容をデコードを使用してBinHexのエンコードとデコードされたバイナリ バイトを返します (たとえば、インラインBinHex-GIF イメージのエンコードされた) バッファーにします。This method reads the element content, decodes it using BinHex encoding, and returns the decoded binary bytes (for example, an inline BinHex-encoded GIF image) into the buffer.

このメソッドは、単純なコンテンツの要素を読み取るだけことができます。This method can only read simple-content elements. 要素は、テキスト、空白、有意の空白、CDATA セクションでは、コメントおよび処理命令に含めることができます。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.

このメソッドとよく似ています、ReadContentAsBinHexする点のメソッドは、要素ノードの種類でのみ呼び出すことができます。This method is very similar to the ReadContentAsBinHex method except that it can only be called on element node types.

場合、count値は、ドキュメント内のバイト数よりも大きく、ドキュメント内のバイト数と同じである場合、XmlReaderドキュメント内の残りのすべてのバイトを読み取り、読み取ったバイト数を返します。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. XmlReaderメソッドの呼び出しは、0 を返し、次のノードは、リーダー、EndElementします。The next XmlReader method call returns a zero and moves the reader to the node following the EndElement.

呼び出す場合Readリーダーが最初のコンテンツが使用された場合、動作可能性がありますすべての要素のコンテンツを使用すると、前にし、Readメソッドが呼び出されました。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.

このメソッドの非同期バージョンを参照してください。ReadElementContentAsBinHexAsyncします。For the asynchronous version of this method, see ReadElementContentAsBinHexAsync.

適用対象

こちらもご覧ください