Partage
  • Partager sur Facebook
  • Partager sur Twitter

récupérer un attribut XML et la mettre dans une variable

    20 mai 2006 à 14:08:42

    Bonjour,

    Je voudrais savoir comment faire pour récuprérer le langage rentré dans une balise comme celle-là:
    < code langage="php">code</code>
    Autrement dit, comment récupérer la valeur "php" et l'enregistrer dans une variable ($langage) pour l'utilisation de Geshi en suivant ce modèle:

    <?php
    geshi_highlight($source, $langage, $path);
    ?>


    Merci à vous.

    Le tuto pour ceux qui ne l'auraient pas lu: Colorer son code

    EDIT: Titre
    • Partager sur Facebook
    • Partager sur Twitter
      21 mai 2006 à 11:29:29

      Un petit UP.
      J'avais pensé avec les librairie XML et les API.
      Qu'en pensez vous?
      • Partager sur Facebook
      • Partager sur Twitter
        21 mai 2006 à 13:25:07

        Et comment tu fais ça avec des REGEX?
        • Partager sur Facebook
        • Partager sur Twitter
          21 mai 2006 à 15:50:23

          Le message que l'utilisateur aura tapé sera stocké dans un bdd
          Ensuite lorsque tu devra afficher ce message tu vérifie (via preg_match) d'abord s'il y a des balises "<code>" ensuite si ces balises existent tu vérifie le langage avec la fonction preg_match()
          Pour + d'info sur les regex lit les tutos de m@teo
          • Partager sur Facebook
          • Partager sur Twitter
            21 mai 2006 à 16:01:36

            Justement je les ai lus mais je ne vois pas comment récupérer cette valeur pour en faire une variable à l'aide des REGEX...
            • Partager sur Facebook
            • Partager sur Twitter
              22 mai 2006 à 13:07:04

              ca c'est avec DOM sans regex
              <?php
              $dom = new DOMDocument('1.0','iso-8859-1');
              $dom->loadXML($var_xml);
              $elements = $dom->getElementsByTagName('*');
              foreach($elments as $element)
              {
              if($element->hasAttributes())

              {

                      foreach($element->attributes as $attribut)

                      {

                              echo 'nom de l\'attribut: '.$attribut->name.' valeur de l\'attribut: '.$attribut->value;
                      }

              }
              }
              ?>
              • Partager sur Facebook
              • Partager sur Twitter
                22 mai 2006 à 17:02:16

                Merci NeoZero!
                Il me semblait bien qu'il faudrait utiliser quelque chose comme ça.
                Et sinon il n'existe aucune autre solution?
                Et celle-là peut-elle être utilisée avec PHP4?

                Merci d'avance.
                • Partager sur Facebook
                • Partager sur Twitter
                  22 mai 2006 à 18:45:26

                  Je crois que tu peux oublier DOM avec php4 ;)

                  Mais si tu veux simplement receuillir le type de langage précisé dans une balise <code>, les regex sont amplement suffisantes - avec la fonction preg_match() et des parenthèses capturantes -.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 mai 2006 à 19:29:14

                    ok et donc en fait je récupere une valeur avec les parenthèses et la fonction qui la récupere je la met dans une variable.
                    Que j'utilise pr mon premier message?
                    Comme ca ca peut marcher?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 mai 2006 à 13:45:27

                      Encore un petit UP dsl...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 mai 2006 à 15:20:26

                        Citation : Folken Laëneck

                        Je crois que tu peux oublier DOM avec php4 ;)

                        Mais si tu veux simplement recueillir le type de langage précisé dans une balise <code>, les regex sont amplement suffisantes - avec la fonction preg_match() et des parenthèses capturantes -.


                        faux

                        Citation : doc php

                        'extension DOM XML a été reprise en main en PHP 4.3.0 pour être mieux compatible avec les standards DOM



                        puis les regex bha c'est gourmand en ressources. Voila pourquoi le SDZ a préféré les utiliser avec parcimonie. Donc tout dépend du nombre de regex que tu execute dans ta page
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 mai 2006 à 16:11:27

                          Ouai mais le code que tu m'a donné avec DOM ne marche pas. Il me sort une erreur...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            23 mai 2006 à 16:20:32

                            ouai peut être parce que c'est avec php5.1 que je code moi donc ça marche donc utilise une regex preg_match("`<code langage=\"(php|bidule|truc)\"`",$code,$matches); enfin ca c'est vite fait j'ai pas vérifier que ca marche
                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 mai 2006 à 18:17:38

                              ok bon bah je ferai avec les regex.
                              Mais encore une derniere question.
                              Si j'ai plusisuers fois dans le texte que je parse la balise code ca va toute sles parser?
                              • Partager sur Facebook
                              • Partager sur Twitter

                              récupérer un attribut XML et la mettre dans une variable

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown