Codage binaire dans fichier XML

Résolu
themaste Messages postés 130 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juillet 2008 - 24 avril 2008 à 11:32
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 24 avril 2008 à 14:18
Bonjour à tous,


Mon but est de pouvoir écrire un XML, et dans un des attributs, définir les data binaire d'un fichier (image, ou exe etc...).


Pour le moment, j'utilise un XMLDoc, dans lequel je créer mes noeuds et attributs.
A un moment, j'ai un noeud du style:
<File filename="monfichier.too" data="....."/>


Dans data, j'aimerais donc mettre le contenu binaire du fichier en question. Aussi, par la suite, j'aimerais récupérer ces data, pour récréer le fichier.


Pour le moment, je n'ai trouver que la poste avec XMLTextWriter et la fonction WriteBase64. Cependant, je n'arrive pas à utiliser cela avec mon XMLDoc.


Est-ce que vous avez une idée?  Et donc également pour la récupération de l'info.
PS: le xml est une trame souvent, et pas forcément ujn fichier. En gros, c'est limite une notion de transfert de fichier par XML.


Merci

2 réponses

bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
24 avril 2008 à 14:18
Ha oui pour récupérer le tableau de bytes data[] de ton fichier monfichier.too, utilise un BinaryReader et la méthode ReadBytes.
3
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
24 avril 2008 à 14:17
L'encodage 64bits est la SEULE possibilité viable pour écrire du binaire sans perte de données.

XmlNode node = tonxml.SelectSingleNode("/XML/truc/muche/File");

//lecture du XML
byte[] data = Convert.FromBase64String(node.Attributes["data"]);

//ecriture dans le XML
string str = System.Convert.ToBase64String(data);
node.Attributes["data"] = str;

C'est pas difficile
0
Rejoignez-nous