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 :

syntax du pattern de la fonction replace


Sujet :

XSL/XSLT/XPATH XML

  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 syntax du pattern de la fonction replace
    Je cherche à effectuer à remplacer une chaine de caractère pas une autre (j'ai vu dans la FAQ que ce n'était pas possible simplement avec XPATH 1.0 mais il existe la fonction replace dans XPATH 2.0)

    La fonction replace prend comme deuxième paramètre un pattern. Mon problème est que je ne connait pas la syntaxe possible de ce pattern. Existe t il un endroit où l'on peut trouver cette syntaxe ?
    Plus précisément, ma chaine a remplacer comporte le caractère "/" qui est interprété lors du remplacement. Du coup, le résultat n'est pas celui attendu. Existe t il un caractère d'échappement ? Sinon comment est il possible de remplacer ce type de caractère ?

    Merci d'avance pour vos réponses.
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    google est ton ami? E tout cas, moi il me trouve çà
    http://www.w3.org/TR/2004/WD-xpath-f.../#regex-syntax

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    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
    Citation Envoyé par tchize_ Voir le message
    google est ton ami? E tout cas, moi il me trouve çà
    http://www.w3.org/TR/2004/WD-xpath-f.../#regex-syntax
    Merci, je suis tombé dessus (sans trop me faire mal) après quelques recherches. Le problème c'est que je ne trouve pas leurs pages très intuitives... Du coup je ne trouve pas la solution à mon problème mais je sens que c'est la seule voie que j'ai.

    Citation Envoyé par CyberChouan Voir le message
    Les regexp java je connais et leur pattern j'arrive a m'en sortir.
    Le problème viens du pattern des fonctions XPath 2.0. D'après le W3C, c'est la même chose qu'en PERL sauf que je ne maitrise pas du tout PERL. Je vais donc me plonger dedans pour tenter de trouver une réponse.

    EDIT: en fait le problème ne vient pas des "/" (j'ai fait des tests sans) mais du coup je n'arrive pas a faire marcher la fonction replace
    voici mon code :
    Code XSL : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="replace(@message, 'foo', 'bar')" />
    et le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
         [xslt] Processing /home/test/Documents/xsl/report.xml to /home/test/Documents/xsl/report.html
         [xslt] Loading stylesheet /home/test/Documents/xsl/checkstyle.xsl
         [xslt] : Error! Erreur de contrôle du type de l'expression 'funcall(replace, [step("attribute", 16), literal-expr(foo), literal-expr(bar)])'.
         [xslt] : Fatal Error! Impossible de compiler la feuille de style
         [xslt] Failed to process /home/test/Documents/xsl/checkstyle_report.xml
    Si quelqu'un a une idée...
    Librairie d'accès LDAP en Java : LdapBeans
    et pensez au tag

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    J'ai la même erreur. Mobius est-ce que tu as trouver la solution depuis?

  6. #6
    Membre habitué Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Points : 131
    Points
    131
    Par défaut
    Je dirai que cela vient de la fonction replace elle-même qui n'est pas reconnue parce que vous utilisez un parser xslt 1.0 !
    Pour vérifier, essayez avec une fonction qui n'existe pas (toto) et comparez le message d'erreur...

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Merci,

    Effectivement, je me suis trompé en définissant ma tache ant. J'ai utilisé le xsl par défaut alors que pour les transformations xsl 2.0 j'utilise normalement net.sf.saxon.ant.AntTransform

Discussions similaires

  1. [ODBC] Fonction Replace en ODBC
    Par Alexandre T dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2007, 11h02
  2. Fonction replace
    Par mpat dans le forum ASP
    Réponses: 2
    Dernier message: 30/08/2005, 09h59
  3. Fonction replace
    Par pmboutteau dans le forum ASP
    Réponses: 11
    Dernier message: 10/06/2005, 09h42
  4. PB avec la fonction replace
    Par Techman128 dans le forum C++
    Réponses: 6
    Dernier message: 24/02/2005, 11h39
  5. Fonction replace
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 10/06/2004, 12h18

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