Parcourir un fichier XML simple pour comparaison

oolsz Messages postés 2 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 9 janvier 2006 - 9 janv. 2006 à 21:06
oolsz Messages postés 2 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 9 janvier 2006 - 9 janv. 2006 à 21:30
Bonjour et merci de jeter un oeil à mon problème.

Je suis en train de me créer un outils de comparaison de fichier XML pour me faciliter la vie au boulot mais je ne maîtrise pas vraiment bien les fonctions XML que me propose Excel (il s'agit d'une macro pour être précis).

A partir de fichiers XML de références (valident aujourd'hui... mais qui peuvent être ammenés à évoluer dans le futur), je voudrais renseigner une feuille Excel avec le niveau d'imbrication (les noeuds), le nom des tags et les valeurs qu'ils contiennent. Ensuite, je vais chercher le fichier XML à comparer et trois autres colonnes sont valorisées de la même façon. Résultat attendu : une vérification rapide de visu (avec au besoin des mises en formes conditionnelles pour jouer avec les couleurs de cellule).

J'ai ajouté une référence à Microsoft XML V3.0 et me suis inspiré d'un code présent sur le site. Malheureusement, il aurait été trop beau que cela correponde pile à ce que je voulais faire, mais malgré plusieurs heures de recherche, je ne parvient pas à un résultat fiable et réutilisable à volonter (j'ai au moins une quarantaine de fichier XML plus ou moins différents à vérifier ponctuellement).

Voilà grosso-modo à quoi ressemble un fichier que je peux avoirà traiter :


<?xml version="1.0" encoding="UTF-8"?>
<NoeudPère blablaprofessionnel" xsi:noNamespaceSchemaLocation="fichier.xsd">
<NoeudFils1>
<tag1>001</tag1>
<tag2>0113569</tag2>
<tag3>2005-12-27</tag3>
</NoeudFils1>
<NoeudFils2>
<tag4>002</tag4>
<tag5>PROD</tag5>
</NoeudFils2>
<NoeudFils3>
<tag6>7291</tag6>
<tag7>132</tag7>
</NoeudFils3>
</NoeudPère >

J'aimerais obtenir une présentation de ce style après le chargement du fichier de référence (en espèrant que ça passe bien dans le navigateur), avec le même tableau à côté avec le fichier à certifier :

|ColA | ColB | ColC | ColD |
| | |tag1 | 001 |
| |NoeudFils1|tag2 | 0113569 |
| | |tag3 | 2005-12-27 |
| |------------|-------|------------- -|
| | |tag4 | 002 |
|NoeudPère |NoeudFils2|tag5 | PROD |
| |------------|-------|-------------- |
| | |tag6 | 7291 |
| |NoeudFils3|tag7 |132 |
|-----------------------------------------------|

Comment faire pour connaitre le nombre d'imbrication de mon fichier (normalement 4)?
Comment faire pour parcourir bêtement, ligne à ligne (je pourrais traiter le fichier comme un fichier text, mais cela suppose un fonction par type de fichier quasiment), le fichier et pour chaque noeud, lister les tag qu'il contient (avec les valeurs), puis passer au noeud suivant et ainsi de suite...? Rien qu'avec ça je devrais pouvoir avancer mais là, je ne trouve vraiment pas.

Est-ce que quelqu'un pourrait m'aide SVP? Merci.

1 réponse

oolsz Messages postés 2 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 9 janvier 2006
9 janv. 2006 à 21:30
Il me faudrai un truc du genre :

Pour chaque tag dans NoeudPere
Pour chaque tag dans NoeudFils1
remplissage du tableau
Pour chaque tag dans NoeudFils2
remplissage du tableau
Pour chaque tag dans NoeudFils3
remplissage du tableau

Comment faire pour transformer en code le "pour chaque tag dans le noeud" et même le pour "chaque noeud dans le noeud"?

Je m'emmèle avec tout ces noeuds moi!
0
Rejoignez-nous