Modification d'un fichier XML : modifier valeur suivant les balises
Bonsoir / bonjour tous
Comment je galère... En fait je suis en train de créer un script pour modifier un fichier de configuration. Dans ce fichier, il y a <Enabled>false</Enabled> qui faut basculer en true. Facile au départ, mais le souci, c'est que j'ai plein de <Enabled>false</Enabled> et il me faut cibler le bon.
Le bon se présente comme ceci :
Code:
1 2 3
| <GeoLocationConfiguration>
<Enabled>false</Enabled>
</GeoLocationConfiguration> |
Du coup, je sais pas comment scripter cette affaire pour que l'identification du <Enabled>false</Enabled> se fasse en rapport à la ligne de au dessus (ou en dessous)
Merci pour votre coup de main par avance
Tof
Edit:
Alors j'ai un début de réponse, car j'ai testé ceci :
Code:
sed -i -e 's/<GeoLocationConfiguration>/<GeoLocationConfiguration><Enabled>true<\/Enabled>/g' chemin/conf/cdm-config.xml
Mais ça donne :
Code:
1 2 3
| <GeoLocationConfiguration><Enabled>true</Enabled>
<Enabled>false</Enabled>
</GeoLocationConfiguration> |
Et pour finir, j'ai tenté en vain en essayant avec https://www.developpez.net/forums/d1...-script-shell/
ça me multiplie toutes les lignes de mon fichier par 2 et coté résultat ça donne pas térrible
Code:
sed -i -e '/<GeoLocationConfiguration>/,/<\/GeoLocationConfiguration>/{N;s/\(<Enabled>\)[^<]*\(<\/Enabled>\)/\true\2/};p' chemin/conf/cdm-config.xml
le résultat :
Code:
1 2 3
| <GeoLocationConfiguration>
rue</Enabled>
</GeoLocationConfiguration> |