XmlReader.ReadElementContentAsBinHex-Methode
Assembly: System.Xml (in system.xml.dll)
public int ReadElementContentAsBinHex ( byte[] buffer, int index, int count )
public function ReadElementContentAsBinHex ( buffer : byte[], index : int, count : int ) : int
Nicht zutreffend.
Parameter
- buffer
Der Puffer, in den der resultierende Text kopiert werden soll. Dieser Wert darf nicht NULL-Verweis (Nothing in Visual Basic) sein.
- index
Der Offset im Puffer, an dem mit dem Kopieren des Ergebnisses begonnen werden soll.
- count
Die maximale Anzahl von Bytes, die in den Puffer kopiert werden sollen. Diese Methode gibt die tatsächliche Anzahl von kopierten Bytes zurück.
Rückgabewert
Die Anzahl der in den Puffer geschriebenen Bytes.| Ausnahmetyp | Bedingung |
|---|---|
| Der buffer-Wert ist NULL-Verweis (Nothing in Visual Basic). | |
| Der aktuelle Knoten ist kein Elementknoten. | |
| Der Index im Puffer oder Index + Anzahl übersteigen die Größe des zugeordneten Puffers. | |
| Die XmlReader-Implementierung unterstützt diese Methode nicht. | |
| Das Element enthält gemischten Inhalt. | |
| Der Inhalt kann nicht in den angeforderten Typ konvertiert werden. |
Diese Methode liest den Elementinhalt, decodiert ihn mithilfe der BinHex-Codierung und gibt die decodierten binären Bytes (z. B. ein BinHex-codiertes Inline-GIF-Bild) an den Puffer zurück.
Diese Methode kann nur Elemente mit einfachem Inhalt lesen. Das Element darf Text, Leerraum, signifikanten Leerraum, CDATA-Abschnitte, Kommentare und Verarbeitungsanweisungen enthalten. Es darf auch Entitätsverweise enthalten, die automatisch erweitert werden. Das Element darf keine untergeordneten Elemente enthalten.
Diese Methode ähnelt der ReadContentAsBinHex-Methode, aber sie kann nur auf Elementknotentypen aufgerufen werden.
Wenn der count-Wert größer oder gleich der Anzahl von Bytes im Dokument ist, liest XmlReader alle verbleibenden Bytes im Dokument und gibt die Anzahl der gelesenen Bytes zurück. Der nächste Aufruf der XmlReader-Methode gibt 0 (null) zurück, und der Reader wechselt auf den Knoten hinter dem EndElement.
Wenn Sie Read aufrufen, bevor der gesamte Elementinhalt verbraucht ist, verhält sich der Reader so, als wäre der erste Inhalt verbraucht und anschließend die Read-Methode aufgerufen worden. Dies bedeutet, dass der Reader den gesamten Text bis zum Endelement liest. Anschließend liest er den Knoten am Endtag und den nachfolgenden Knoten, und dann positioniert er sich auf dem darauf folgenden Knoten.
Im folgenden Beispiel wird ein BinHex-codiertes Inlinebild gelesen. Die BinHex-Daten sind in ein <image>-Element eingebettet. Mit einem BinaryWriter wird eine neue Binärdatendatei erstellt.
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(); } }
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.