Partage
  • Partager sur Facebook
  • Partager sur Twitter

[XML] Regex

    15 décembre 2005 à 20:17:06

    Bonjour, je fais quelques petits trucs en XML et j'ai besoin de faire des Regex, cela existe-t-il en XML ? Si oui comment les utiliser ? Et de même pour les conditions.

    En fait, j'ai une varaible et si elle contient un mot, sans tenir compte de la casse, on affiche cela...

    Merci d'avance.

    Edit : Euh en fait je sais pas si c'est XML pcq l'extension du fichier est .xls... c'est un fichier d'un logiciel de jeu en réseau que j'ai modifié pour changer l'apparence. Et j'ai rajouté une colone dans la liste des jeux qui donne une indication concernant la partie à jouer selon le nom qu'on lui donne donc au lieu de faire :

    <xsl:if test="name='machin'">indication 1</xsl:if>
    <xsl:if test="name='Machin'">indication 1</xsl:if>
    <xsl:if test="name='MACHIN'">indication 1</xsl:if>
    <xsl:if test="name='mchin'">indication 1</xsl:if>

    etc...

    Faire uniquement une Regex
    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2005 à 21:18:28

      heu... xls c'est pas Office Excel ?? :D
      • Partager sur Facebook
      • Partager sur Twitter
        15 décembre 2005 à 21:21:56

        Slt,

        ton message n'est pas clair. Tu veux faire quoi avec quoi au juste ? Une transfo Xslt ? Dans ce cas les fonctions contains, substring-before et substring-after devraient t'aider. Sinon reformule ton message :/

        ++
        • Partager sur Facebook
        • Partager sur Twitter
          15 décembre 2005 à 22:13:35

          XML c'est plus une manière de stocker les données qu'autre chose. Pas de REGEXP en tout cas. Par contre, tu peux utiliser n'importe quel autre langage qui manipule le texte pour faire des REGEXP.

          Ocaml, C/C++, Java, PHP, Perl...
          • Partager sur Facebook
          • Partager sur Twitter
            15 décembre 2005 à 23:31:48

            En fait j'ai un fichier .xsl qui commence comme ça :

            <?xml version="1.0" encoding="ISO-8859-1" ?>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:output method="html" />

            <xsl:variable name="language"><xsl:value-of select="/game/@lang"/></xsl:variable>

            <xsl:template match="game">
            <html>
            <head>


            et moi je veux au lieu de faire ça :

            <xsl:if test="name = 'Zoldo Alto'"><xsl:if test="$language = 'EN'">Mountain</xsl:if><xsl:if test="$language = 'FR'">Montagne</xsl:if></xsl:if>
            <xsl:if test="name = 'zoldo alto'"><xsl:if test="$language = 'EN'">Mountain</xsl:if><xsl:if test="$language = 'FR'">Montagne</xsl:if></xsl:if>
            <xsl:if test="name = 'ZOLDO ALTO'"><xsl:if test="$language = 'EN'">Mountain</xsl:if><xsl:if test="$language = 'FR'">Montagne</xsl:if></xsl:if>
            <xsl:if test="name = 'ZOLDO'"><xsl:if test="$language = 'EN'">Mountain</xsl:if><xsl:if test="$language = 'FR'">Montagne</xsl:if></xsl:if>
            <xsl:if test="name = 'zoldoalto"><xsl:if test="$language = 'EN'">Mountain</xsl:if><xsl:if test="$language = 'FR'">Montagne</xsl:if></xsl:if>


            (etc...)

            De mettre une regex, beaucoup plus rapide.
            • Partager sur Facebook
            • Partager sur Twitter
              16 décembre 2005 à 7:49:55

              Déjà tu vas tout passer en minuscules et virer l'espace :
              http://www.topxml.com/xml/articles/caseconvert/default.asp

              ça te donne

              <xsl:variable name="before">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz </xsl:variable>
              <xsl:variable name="after">abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</xsl:variable>
              <xsl:value-of select="translate($name,$before,$after)"/>


              Note que j'ai mis un espace dans before à la fin, pour qu'il soit remplacé par chaine vide car il n'a pas de correspondant dans after.
              Avec ça il faut quand même que tu testes 2 choses : zoldo et zoldoalto, ça te suffit ou pas ?
              • Partager sur Facebook
              • Partager sur Twitter
                16 décembre 2005 à 23:14:24

                Je testerai ça demain, merci. ;)
                • Partager sur Facebook
                • Partager sur Twitter

                [XML] Regex

                × 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