Bonjour,
Partie 1 :
je viens a vous après de multiple recherche et tentative infructueuse de ma part en effet j'essaye d'extraire plusieur chaine texte d'un fichier XML afin de pouvoir les comparer avec d'autre chaine
mon fichier XML ressemble a ceci
A partir de ce fichier XML je tente donc d'extraire le chaine de la balise Hash
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <PackingList xmlns="http://www.digicine.com/PROTO-ASDCP-PKL-20040311#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Id>urn:uuid:4acd1ef7-0787-e211-9f69-0025900cf57e</Id> <AnnotationText>LA-RELIGIEUSE_FTR_F_FR-XX_51_2K_PAC_20130307_TIT_2D</AnnotationText> <IssueDate>2013-03-07T10:18:25+01:00</IssueDate> <Issuer>OpenCube Technologies</Issuer> <Creator>MXFTk DCPCreator</Creator> <AssetList> <Asset> <Id>urn:uuid:560859b2-0787-e211-9f66-0025900cf57e</Id> <AnnotationText>LA-RELIGIEUSE_FTR_F_FR-SME_51_2K_PAC_20130307_TIT_2D</AnnotationText> <Hash>YtF3Mn451bh5mjqiGz9YviH4eSsve1iYI=</Hash> <Size>19138</Size> <Type>text/xml;asdcpKind=CPL</Type> <OriginalFileName>CPL_LA-RELIGIEUSE_FTR_F_FR-SME_51_2K_PAC_20130307_TIT_2D_560859b2-0787-e211-9f66-0025900cf57e.xml</OriginalFileName> </Asset> </PackingList>
Ce que j'arrive a faire vous allez me dire mais alors qu'elle est ton problème !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 int Test::LoadXML(const char* pathXML) { TiXmlDocument doc(pathXML); if(!doc.LoadFile()) { cerr << "erreur lors du chargement" << endl; cerr << "error #" << doc.ErrorId() << " : " << doc.ErrorDesc() << endl; return 1; } list<Hash> hash_list; TiXmlHandle handle(&doc); TiXmlText *txt = handle.FirstChild("PackingList").FirstChild("AssetList").FirstChild("Asset").FirstChild("Hash").FirstChild().Text(); string valtxt = txt->Value(); cout << valtxt << endl ; if(!txt) { cerr << "le noeud à atteindre n'existe pas" << endl; return 2; } return 0; }
le voici , en effet mon code me permet d'extraire seulement 1 seule valeur alors que la balise Hash et présente plusieurs fois dans mon fichier XML
je souhaiterai donc savoir si il est possible ( je sais tout est possible ) de pouvoir extraire tout les les TinyXml Text du node Hash de mon fichier XML et de pouvoir ensuite les stocker dans un tableau ou quelque chose comme ceci
J'ai tenter d'utiliser les NextSibling mais ce ne sont pas TinyElement donc je ne vois pas trop comment faire ... :s
Partie 2
Un autre problème concerne le hashage de fichier en SHA256 , le hashage fonctionne car pour cela j'ai hasher un fichier et comparer avec un générateur de Hash pour exemple un fichier TXT de test de donner :
j'en deduis donc que mon code fonctionne cependant en l'utilisant sur de plus gros fichier je ne trouve pas du tout le meme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 generateur: e1e60df76ef9bf0557b1790e5441cf172300d751889a4ad5d831eff50c194814 calculé :e1e60df76ef9bf0557b1790e5441cf172300d751889a4ad5d831eff50c194814
je pense que le problème vient que le hash du fichier XML est sur une base64 et non le hash calculé , j'aurais donc deux question si vous me le permettez tout d'abord quelle est l'interêt de faire un SHA256 sur base64 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3calculé : 03fb8a1b3ac936c0a0ad0be1c42f4c7085785e387ccef2c12f3917ff22c86b1b XML hash : MdK+dteP2MKCCM5HFa4hLERrarU=
Ma deuxième serait comment Convertir un SHA256 normal en base64 ?
J'ai vraiment besoin de vôtre aide donc soyez indulgent je suis pas très a l'aise avec ces notions
en vous remerciant par avance
si vous pouviez éclairez la lanterne d'un developpeur en detresse
Bien cordialement
Sebastien
Partager