Traiter XML avec Shell
Résolu
jhoncoke
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
jhoncoke Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
jhoncoke Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un gros fichier XML, voici un bout du fichier:
<infrastructure id="IS" version="2.0">
<tracks>
<track id="TR1.1" mainDir="up">
<trackTopology>
<trackBegin id="TRB1.1" pos="0" absPos="140800">
<macroscopicNode ocpRef="PTCAR1116"/>
</trackBegin>
<trackEnd id="TRE1.1" pos="135000" absPos="275800">
<macroscopicNode ocpRef="PTCAR88"/>
</trackEnd>
</trackTopology>
<trackElements>
<speedChanges>
<speedChange id="S1.1" pos="0" absPos="140800" dir="up" vMax="120"/>
</speedChanges>
<gradientChanges/>
<radiusChanges/>
<levelCrossings/>
<electrificationChanges>
<electrificationChange id="E1.1" pos="0" absPos="140800" dir="up" type="overhead" voltage="1500"/>
</electrificationChanges>
</trackElements>
</track>
Et j'aimerais traiter ce fichier pour classer les données par colonnes dans un fichier txt... Comment je pourrais faire cela avec un script sous Ubuntu ou alors des programmes tout fait??
Merci:)
Et bonne année:)
J'ai un gros fichier XML, voici un bout du fichier:
<infrastructure id="IS" version="2.0">
<tracks>
<track id="TR1.1" mainDir="up">
<trackTopology>
<trackBegin id="TRB1.1" pos="0" absPos="140800">
<macroscopicNode ocpRef="PTCAR1116"/>
</trackBegin>
<trackEnd id="TRE1.1" pos="135000" absPos="275800">
<macroscopicNode ocpRef="PTCAR88"/>
</trackEnd>
</trackTopology>
<trackElements>
<speedChanges>
<speedChange id="S1.1" pos="0" absPos="140800" dir="up" vMax="120"/>
</speedChanges>
<gradientChanges/>
<radiusChanges/>
<levelCrossings/>
<electrificationChanges>
<electrificationChange id="E1.1" pos="0" absPos="140800" dir="up" type="overhead" voltage="1500"/>
</electrificationChanges>
</trackElements>
</track>
Et j'aimerais traiter ce fichier pour classer les données par colonnes dans un fichier txt... Comment je pourrais faire cela avec un script sous Ubuntu ou alors des programmes tout fait??
Merci:)
Et bonne année:)
A voir également:
- Traiter XML avec Shell
- Classic shell - Télécharger - Personnalisation
- Xml download - Télécharger - Édition & Programmation
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
- Paypal nous ne pouvons pas traiter votre demande pour l'instant. réessayez plus tard. - Forum Consommation & Internet
3 réponses
je recentre ma question, voici un bout exemple:
<track id="TR1.1" mainDir="up">
...
</track>
<track id="TR1.2" mainDir="down">
...
</track>
...
Je voudrais mettre chaque nouvelle balise track dans un nouveau fichier xml différent pour avoir à la fin TR1.1.xml; TR1.2.xml; etc.
Merci
<track id="TR1.1" mainDir="up">
...
</track>
<track id="TR1.2" mainDir="down">
...
</track>
...
Je voudrais mettre chaque nouvelle balise track dans un nouveau fichier xml différent pour avoir à la fin TR1.1.xml; TR1.2.xml; etc.
Merci
Re-
Un truc du genre devrait faire l'affaire. A adapter tout de même surtout au niveau du séparateur d'enregistrement en entrée (RS) et du champ de récupération pour le nom du fichier (A=$n) :
À défaut d'exemple concret et plus précis de ta part, j'ai supputé que la ligne <infrastructure id="IS" version="2.0"> était répétée et je m'en suis servi comme séparateur. Si tel n'était pas le cas à remplacer par 'RS="</track>"' et 'A=$6'
Un truc du genre devrait faire l'affaire. A adapter tout de même surtout au niveau du séparateur d'enregistrement en entrée (RS) et du champ de récupération pour le nom du fichier (A=$n) :
awk ' BEGIN { FS="\"" RS="<infrastructure id=\"IS\" version=\"2.0\">" } { if (/track id/) { A=$2 print $0 > A".xml" } } ' fichier.xml
À défaut d'exemple concret et plus précis de ta part, j'ai supputé que la ligne <infrastructure id="IS" version="2.0"> était répétée et je m'en suis servi comme séparateur. Si tel n'était pas le cas à remplacer par 'RS="</track>"' et 'A=$6'