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

Eclipse Discussion :

remplacement dans un fichier XML


Sujet :

Eclipse

  1. #1
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut remplacement dans un fichier XML
    Bonjour,

    Je voudrais reformater un fichier XML (ou plutot déplacer le contenu d'une balise dans l'attribut d'une autre balise)

    voici un exemple pour illustrer :
    je voudrais remplacer ceci :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <ROOT>
      <BALISE>
        ...
        <ATTRIBUT>valeur1</ATTRIBUT>
      </BALISE>
      <BALISE>
        ...
        <ATTRIBUT>valeur2</ATTRIBUT>
      </BALISE>
      <BALISE>
        ...
        <ATTRIBUT>valeur3</ATTRIBUT>
      </BALISE>
    <ROOT>
    en cela :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <ROOT>
      <BALISE ATTRIBUT="valeur1">
        ...
      </BALISE>
      <BALISE ATTRIBUT="valeur2">
        ...
      </BALISE>
      <BALISE ATTRIBUT="valeur3">
        ...
      </BALISE>
    <ROOT>

    J'ai a faire ce traitement sur une centaine de balise d'un seul fichier alors je ne voudrait pas développer un parseur juste pour faire ca et je trouve ca assez pénible de le faire a la main.

    J'ai donc pensé a la fonction find&replace d'Eclipse mais je n'arrive pas a trouver la bonne expression régulière qui correspond à un bloque "BALISE"

    j'ai essayé quelque chose comme ca : "<BALISE>(.*)<ATTRIBUT>(.*)</ATTRIBUT>/s*<BALISE>" sans succès.

    D'autres idées ?
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  2. #2
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    j'ai finalement trouvé en essayant sur mon exemple simplifié.

    Pour ceux que ca interesse, voici l'expression régulière :
    Code regexp : Sélectionner tout - Visualiser dans une fenêtre à part
    <BALISE>([.\s]*)\n\s*<ATTRIBUT>(.*)</ATTRIBUT>([.\s]*)</BALISE>
    et le motif de remplacement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <BALISE ATTRIBUT="$2">$1$3</BALISE>
    EDIT: en fait pour mon cas réel, c'est un peu plus compliqué car les "..." contiennent des balises, ce qui posait apparement problème.
    J'ai donc du utilisé cette regexp (a noter la syntaxe "[\s\S]*?" et non pas simplement ".*" (j'ai utilisé [\s\S] car "." ne fonctionnait pas et "*?" permet d'avoir la correspondante la plus courte au lieu de la plus longue avec "*")
    ce qui donne :
    Code regexp : Sélectionner tout - Visualiser dans une fenêtre à part
    <BALISE>([\s\S]*?)\n\s*<ATTRIBUT>(.*)</ATTRIBUT>(\s*)</BALISE>
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

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

Discussions similaires

  1. [JDOM] Remplacer un element dans un fichier xml
    Par koukoya dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 30/08/2010, 01h37
  2. [XSLT] Remplacer une valeur dans un fichier XML
    Par NicoV dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/11/2009, 16h21
  3. Réponses: 1
    Dernier message: 18/02/2009, 15h31
  4. [XSLT] remplacement de chaine dans un fichier XML
    Par Eldarion dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/07/2006, 13h30

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