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

XSL/XSLT/XPATH XML Discussion :

[XSL] Optimisation d'un traitement de chaines de caractères


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut [XSL] Optimisation d'un traitement de chaines de caractères
    Bonjour,

    Mon site préféré me fait de nouveau travailler avec des technologies dont je n'ai pas l'habitude
    Aujourd'hui j'ai fais la transformation suivante en XSL:
    - avant : ftp://serveurFtp/utilisateur/blabla
    - après : http://utilisateur.serveurHttp/blabla

    Pour ça j'utilise le code suivant qui me donne le bon résultat (j'ai mis des retours à la ligne pour la lisibilité mais à la base c'est une seule ligne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    http://
    <xsl:value-of select="substring-before(substring-after(/document/urlFtp, 'ftp://serveurFtp/'), '/')"/>
    .serveurHttp/
    <xsl:value-of select="substring-after(substring-after(/document/urlFtp, 'ftp://serveurFtp/'), '/')"/>
    Comme je n'ai pas l'habitude de travailler avec XSL, j'aimerai juste savoir s'il est possible d'améliorer mon code.

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Salut mathieu,

    personnellement, je ferais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:variable name="temp" select="substring-after(substring-after(/document/urlFtp, '//'), '/')"/>
    <xsl:value-of select="concat('http://', substring-before($temp, '/'), '.serveurHTTP/', substring-after($temp, '/'))"/>
    L'utilisation d'une variable permet de ne faire qu'une seule sélection de noeuds avec XPath au lieu de deux, et faire la séparation avec uniquement les slashes évite de faire un pré-supposé sur la valeur littérale de 'serveurFTP'.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    ok merci pour la variable, c'est beaucoup mieux sans code en double
    pour la construction de la variable "temp" je me suis permis de remettre le nom du serveur en dur parce qu'il n'y a qu'un cas

    ça ma plait donc je vote "résolu"

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

Discussions similaires

  1. Traitement de chaine de caractère
    Par abbd dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/02/2009, 15h53
  2. [RegEx] Traitement de chaines de caractères
    Par ctrl+z dans le forum Langage
    Réponses: 17
    Dernier message: 09/02/2009, 15h11
  3. Traitement de chaine de caractère
    Par kroax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2007, 15h09
  4. [VB6]Traitement de chaine de caractère + conversion
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/04/2006, 09h23
  5. Traitement de chaine de caractères
    Par lapartdombre dans le forum Langage
    Réponses: 9
    Dernier message: 03/02/2006, 09h29

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