Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

XML > 195 Binäre Daten in einem XML-Dokument speichern - Pg. 529

>> XML 529 195 Binäre Daten in einem XML Dokument speichern In XML-Dokumenten können Sie nicht nur Textdaten speichern, sondern auch binäre. Das Prinzip dazu ist ganz einfach: Sie müssen die binären Daten lediglich über das Base64-Verfah- ren in einen Text umwandeln, der im 7-Bit-ASCII-Zeichensatz codiert ist. Dazu können Sie beim Schreiben über ein XmlWriter -Objekt die Methode WriteBase64 verwenden. Verwenden Sie ein XElement - oder XDocument -Objekt, müssen Sie die Daten über Convert.ToBase64String selbst umwandeln. Das Beispiel in Listing 347 erzeugt ein neues XML-Dokument mit einem person -Element, in dem neben dem Vor- und dem Nachnamen auch ein Bild der Person gespeichert wird. System.Reflection und System.Xml.Linq . // Der Dateiname string xmlFileName = "Persons.xml"; // Neues XML-Dokument erzeugen XElement rootElement = XElement.Parse( @"<persons> <person> <firstName>Zaphod</firstName> <lastName>Beeblebrox</lastName> <picture/> </person> </persons>"); // Das Bild einlesen string appPath = Path.GetDirectoryName( Assembly.GetEntryAssembly().Location); string imageFileName = Path.Combine(appPath, "Zaphod.jpg"); FileInfo fi = new FileInfo(imageFileName); byte[] buffer = new byte[fi.Length]; FileStream fs = new FileStream(imageFileName, FileMode.Open, FileAccess.Read); fs.Read(buffer, 0, buffer.Length); // Die Person suchen XElement personElement = rootElement.Element("person"); // Bild Base64-codieren ... string codedFile = Convert.ToBase64String(buffer, 0, buffer.Length); // Das Bild schreiben personElement.Element("picture").Value = codedFile; // XML-Datei speichern rootElement.Save(xmlFileName); Listing 347: Speichern von binären Daten in einer XML Datei Das Programm erfordert den Import der Namensräume System , System.Diagnostics , System.IO , XML