IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Modification d'un fichier XML : modifier valeur suivant les balises


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e 's/<GeoLocationConfiguration>/<GeoLocationConfiguration><Enabled>true<\/Enabled>/g' chemin/conf/cdm-config.xml
    Mais ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e '/<GeoLocationConfiguration>/,/<\/GeoLocationConfiguration>/{N;s/\(<Enabled>\)[^<]*\(<\/Enabled>\)/\true\2/};p' chemin/conf/cdm-config.xml
    le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <GeoLocationConfiguration>
                  rue</Enabled>
        </GeoLocationConfiguration>

  2. #2
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Je l'ai enfin !!!!

    Etant donné qee ça pourra servir pour dautres, je vous fais un retour. J'ai trouvé en fait la ligne graçe à ce post ici : https://superuser.com/questions/9166...script-command

    Il suffit de reprendre la ligne d'origine et de l'adapter à vos balises et modifications à effectuer.

    Pour ma part voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e "/<GeoLocationConfiguration>/,/<\/GeoLocationConfiguration>/ s/<Enabled>false<\/Enabled>/<Enabled>true<\/Enabled>/g;" chemin/conf/cdm-config.xml

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    Etant donné qee ça pourra servir pour dautres,
    Oui et non. Les autres utiliseront un outil spécial pour les fichiers xml comme xmllint ou xmlstartlet plutôt que d'utiliser sed.

    Merci de partager ton expérience.

    Pour éviter d'échapper les obliques dans la substitution, il suffit de prendre un autre séparateur que l'oblique pour la substitution.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s@<Enabled>false</Enabled>@<Enabled>true</Enabled>@g
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Merci à toi,

    Si tu peux me convertir ce que j'ai mis en xmlstartlet suis preneur

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    j'ai plein de <Enabled>false</Enabled> et il me faut cibler le bon.
    Quel critère définit le "bon" ?
    Quel est la vraie structure complète du fichier xml ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Modification d'un fichier XML - La sauvegarde modifie l'Encoding
    Par MikeGuibs dans le forum Débuter
    Réponses: 2
    Dernier message: 02/02/2013, 12h50
  2. [xml/xsl/xhtml] modification d'un fichier XML
    Par florent_de_brest dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/05/2006, 20h43
  3. [c#] Modification d'un fichier XML
    Par topolino dans le forum Windows Forms
    Réponses: 13
    Dernier message: 21/03/2006, 14h51
  4. [DOM] Modification d'un fichier XML
    Par nana1 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 21/11/2005, 23h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo