Entwickler-Ecke
IO, XML und Registry - byte Array in Xml speichern
danielf - Mi 16.12.09 16:18
Titel: byte Array in Xml speichern
Hallo,
ich versuche gerade Metadaten mit Binärdaten (image) in ein Xml (Unicode) zu bekommen. Leider funktioniert es nicht wirklich.
Ich kann die Daten mit einem XmlWriter abspeichern. Aus Bequemlichkeit verwende ich zum Einlesen einen XmlDocument - soweit so gut. Problem nun, wenn ich die Binärdaten einzulesen und anschließend sie zu verarbeiten gibt es Probleme. Ich vermute beim de/encoden geht irgendwo was falsch. Hab keine Idee mehr :(
Hier ein paar Codenippels zum
Speichern)
C#-Quelltext
1: 2: 3: 4: 5:
| XmlWriterSettings settings = new XmlWriterSettings(); settings.Encoding = Encoding.Unicode; XmlWriter writer = XmlWriter.Create(stream, settings);
writer.WriteBase64(this.ImageRawData.GetBuffer(), 0, (int) this.ImageRawData.Length); |
Laden)
C#-Quelltext
1: 2: 3: 4: 5:
| XmlNode imageNode = (XmlNode) doc.SelectSingleNode(@"/jigsaw/image");
this.ImageRawData = new MemoryStream(); byte[] imageRawData = Encoding.Unicode.GetBytes(imageNode.OuterXml); this.ImageRawData.Write(imageRawData, 0, imageRawData.Length); |
Wüßte nicht was schief geht :/ Aber bin vor lauter Varianten auch schon ganz verwirrt, wäre schön, wnen mir einer das Licht zeigt ;)
Gruß Daniel
Christian S. - Mi 16.12.09 16:23
Du verschweigst leider, was das denn für Probleme sind, die da entstehen, aber spontan würde ich sagen: Wenn Du dann als Base64 kodiert speicherst, musst sie danach erst einmal wieder dekodieren, oder? :gruebel:
danielf - Mi 16.12.09 16:30
Ja, das klingt logisch. Leider verwende ich beim Laden eben das XmlDocument und ich habe keinen passenden Stream/Position von der aus ich dem Pendant zum XmlWriter, dem XmlReader sagen könnte los ReadBase64 ... :/
Bei den Binärdaten handelt es sich um den Inhalt eines Bildes (byte[] imageBuffer = File.ReadAllBytes(file.FullName);). Der Fehler tritt dann ein, wenn ich versuche aus den gespeicherten und den geladen Daten versuche ein Bitmap zu laden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!