Lecture et modification d'un fichier XML
Bonjour tout le monde,
J'aurais besoin d'un petit coup de pouce de votre part. J'ai un document XML (~10Mo) que je dois traiter.
L'idéal pour moi serait de pouvoir modifier directement le document en le parcourant.
J'ai divers choses à faire sur ce document :
- Je dois modifier le nom d'un noeud VERT
- Supprimer des balises et ce qui se trouvent entre.ROUGE
- Copier ce qui se trouve entre 2 balises dans une nouvelle balise BLEU
- Créer des nouvelles balises VIOLET
Le top serait de pouvoir dire tu va à cette balise, tu modifies le nom du noeud, tu va à cette balise tu stockes dans une variable ce qu'il y a entre les deux pour pouvoir le coller plus tard dans une nouvelle balise.
Petit schéma du XML de début et de fin que j'aimerais :
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
<BALISE1>
<BALISE1METIER>
<entry>
<int>1</int>
<hashtable>
<entry>
<int>1</int>
<BALISE1-1>
<CsteA>5</CsteA>
<CsteB>5</CsteB>
<categories>
<Categorie>
<nom>FLEURETTE</nom>
<balise2>
<balise2-1>
A REMPLACER PAR
<REMPLACEBALISE2-1>
<nbGroupes1>1</nbGroupes1>
<nbGroupes2>0</nbGroupes2>
A SUPPRIMER
<plouf>
<points>
<PointAbs>
<pas>0</pas>
<valeur>0</valeur>
</PointAbs>
<PointAbs>
<pas>1</pas>
<valeur>60</valeur>
</PointAbs>
</points>
</plouf>
<libelle>ICI</libelle>
A COPIER ET A GARDER EN VARIABLE
<commentaires></commentaires>
</balise2-1>
</balise2>
</Categorie>
A CREER
<Categorie>
<nom>FLEURETTE</nom>
<balise2>
COPIER LA VARIABLE
<commentaires></commentaires>
</balise2>
</Categorie>
</categories>
<dateDonnees reference="date"/>
</BALISE1-1>
</entry>
</hashtable>
</entry>
</BALISE1METIER>
<boolean>true</boolean>
</BALISE1> |
J'ai donc commencé à utiliser Stax mais j'ai l'impression que ça ne répond pas forcément à mes attentes en tout cas facilement car je ne peux pas chercher une balise directement.
Auriez vous qqchose à me conseiller pour faire ce que je vais faire assez simplement et bien sûr sans que la taille du fichier n'implique un problème de lenteur.
J'ai pensé à du XSLT, DOM ?
Merci beaucoup