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

Langage PHP Discussion :

Changer les entités HTML de balise XML [RegEx]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Changer les entités HTML de balise XML
    Bonjour,
    je n'arrive pas à réaliser l'expression régulièere me permettant de changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    < tag >
           content
    < /tag >
    En
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <tag>
           content
    </tag>
    où tag peut être n'importe quel tag (issu d'un fichier XML).
    Merci pour votre aide.

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Y'a sans doute plus élégant, mais ça marche...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $line = ' 
    &lt;tag &gt;
           content
    &lt; /tag &gt;';
    $line =  preg_replace("/&lt; ?/","<",$line);
    $line =  preg_replace("/ ?&gt;/",">",$line);
    echo trim($line);
    ?>

  3. #3
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    ou aussi :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $line = ' 
    &lt;tag &gt;
           content
    &lt; /tag &gt;';
    $patterns[0] = '/&lt; ?/';
    $patterns[1] = '/ ?&gt;/';
    $replacements[2] = '<';
    $replacements[1] = '>';
     
    echo trim(preg_replace($patterns,$replacements,$line));
     
    ?>

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Merci d'avoir répondu.
    LE problème c'est qu'il faut que les deux tags correspondent.
    Soit l'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    &lt; tag2 &gt;
          je suis du n'importe quoi &lt; car j'aime bien &gt; compliquer
    &lt; /tag2 &gt;
    En fait, je ne veux vraiment que remplacer les entites HTML des balises XML et pas le reste qui peut être n'importe quoi.
    Merci.

  5. #5
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Peut être quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
      $str = <<<EOT
    &lt; tag2 &gt;
          je suis du n'importe quoi &lt; car j'aime bien &gt; compliquer
    &lt; /tag2 &gt;
    &lt; tag3 &gt;
          je suis du n'importe quoi &lt; car j'aime bien &gt; compliquer
    &lt; /tag3 &gt;
    EOT;
     
      $res = preg_replace('%(&lt; ([^ ]*?) &gt;)(.*?)(&lt; /\2 &gt;)%si', '<$2>$3</$2>', $str);
      echo $res;
    ?>
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <tag2>
          je suis du n'importe quoi &lt; car j'aime bien &gt; compliquer
    </tag2>
    <tag3>
          je suis du n'importe quoi &lt; car j'aime bien &gt; compliquer
    </tag3>

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Impeccable, c'est exactement cela ;-)
    Merci beaucoup.
    Je vais juste rajouter une condition au cas ou il y a un espace ou non dans les definitions des balises (<tag>,< tag>,<tag > ou < tag >).
    Merci encore !!!

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

Discussions similaires

  1. Recuperer les attributs d'une balise XML
    Par chwal dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2010, 14h40
  2. Xquery - Sortir les élements d'une balise XML
    Par faraway dans le forum Développement
    Réponses: 5
    Dernier message: 02/09/2009, 12h32
  3. Changer la valeur d'une balise Xml
    Par djorfe dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 24/04/2008, 10h11
  4. Réponses: 9
    Dernier message: 13/04/2006, 11h40
  5. [XML][XSL]probleme html dans balise xml
    Par chateau64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 02/12/2005, 11h42

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