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 :

[XSLT]Replacement dans un chaine de caractère


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [XSLT]Replacement dans un chaine de caractère
    Bonjour,

    Comment puis je faire pour faire une "fonction" en xls(t) qui permette, dans un champs texte de remplacer automatique les www.example.com par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="http://www.example.com">www.example.com</a>
    et les julien@exemple.com par des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="mailto:julien@exemple.com">julien@exemple.com</a>
    ?

    J'avoue ne pas etre des plus a l'aise avec le xml/xsl... malheuresement...

    Merci d'avance pour vos réponses/conseils

    Cordialement,

    Julien aka Shipset

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    le :

    se trouve dans un element xml tout seul ou tu peux le trouver n'importe ou dans un texte?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ...
    n'importe ou dans le texte... (et il peut y avoir en avoir "plusieurs" dans le meme texte ; et des differents (www.exemple1.com, www.exemple2.com, ...)

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    ok, je voix,

    le problem, ce n'est pas le traitement qu'on va leur appliquer mais plutot la façon dont tu vas pouvoir les parser (le detecter).

    et comme il sont en plein texte, ça risque d'être un peu chaud....
    que ce que tes bouts de texte represente en terme de taille?

  5. #5
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Tu es oblige d'utiliser du xslt pour ça par contrainte ou c'est toi qui t'es dis que c'était le plus simple ?

    Ca ne me parait pas le plus approprié vu la situation, tu aurais beaucoup moins de mal si tu effectuais ce traitement directement en PHP, Java, ASP, Javascript ... (selon ton environnement) en utilisant des expressions régulières.

    Sinon tu peux regarder par la:
    http://www.exslt.org/regexp/index.html

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    un extrait de la future page code source XML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    	<xsl:template name="Replace">
    	<!--remplace une chaine par une autre-->
    		<xsl:param name="chaine"/>
    		<xsl:param name="chaineCherche"/>
    		<xsl:param name="chaineRempl"/>
    		<xsl:param name="Occur"/>
    		<!--si Occur n'est pas rempli il remplace toutes les occurences-->
    		<xsl:choose>
    			<xsl:when test="contains($chaine,$chaineCherche) ">
    				<xsl:choose>
    					<xsl:when test="number($Occur)=0">
    				<xsl:value-of select="$chaine"/>
    					</xsl:when>
    					<xsl:when test="$Occur>0">
    						<xsl:call-template name="Replace">
    							<xsl:with-param name="chaine" select="concat(substring-before($chaine,$chaineCherche),$chaineRempl,substring-after($chaine,$chaineCherche))"/>
    							<xsl:with-param name="chaineCherche" select="$chaineCherche"/>
    							<xsl:with-param name="chaineRempl" select="$chaineRempl"/>
    							<xsl:with-param name="Occur" select="$Occur - 1"/>
    						</xsl:call-template>
    					</xsl:when>
    					<xsl:otherwise>
    								<xsl:call-template name="Replace">
    							<xsl:with-param name="chaine" select="concat(substring-before($chaine,$chaineCherche),$chaineRempl,substring-after($chaine,$chaineCherche))"/>
    							<xsl:with-param name="chaineCherche" select="$chaineCherche"/>
    							<xsl:with-param name="chaineRempl" select="$chaineRempl"/>
    						</xsl:call-template>
     
    					</xsl:otherwise>
    				</xsl:choose>
    			</xsl:when>
    			<xsl:otherwise>
    				<xsl:value-of select="$chaine"/>
    			</xsl:otherwise>
    		</xsl:choose>
    	</xsl:template>

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bon... déja.... merci a tout le monde pour vos réponses.
    Désolé de pas avoir répondu avant... mais... étant à l'etranger... je n'ai pas pu vraiment avoir accés au net (c'est dur lol)

    Donc... pour répondre et apporter des précisions (car mon probleme est toujours plus ou moins présent)

    Pour valal : Oui... exact... le gros probleme est la détection (expression regulière ?). Pour ce qui est du texte... non, les liens sont contenus dans des blocs de textes relativement courts ( 10 ; 20 lignes maxi)

    Pour Drizzt [Drone38] : C'est en effet... plus ou moins une contrainte que je m'impose. Effectivement... je pourrais faire tout cela en PHP... mais disons que le site est entierement en XML / XSL ... et que je dois etre à 90 % de la fin... ca m'embete donc un peu de tout refaire :'(
    Sinon... pour EXSLT... j'ai essayé... mais j'ai un probleme... je dois pas inclure (ou savoir inclure le bon namespace) car il me dit qu'il ne reconnait pas le nom de la fonction quand j'essaie de l'utiliser... Y'a un truc de spécial à avoir sur le serveur pour s'en servir ? (genre un lib apache ou un truc du genre ?) Et sinon... Y'a t il quelqu"un qui a un exemple qui traine et qui fonctionnerai d'utilisation de cette lib ?

    Pour Erwy : Merci pour cette fonction... mais... sauf erreur de ma part... elle permet de remplacer un motif "connu"... mais pas d'intégrer dedans l'utilisation d'expression réguliaire... si ?

    Ps : je vous jure... cette fois... je pars plus... je pourrais donc répondre direct et plus 15 jours après (je sais que c'est très chiant de laisser pourrir un sujet sur un forum)

  8. #8
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    J'ai jamais utilisé cette lib mais voila un exemple (c'est pas le premier example il faut descendre un peu pour arriver à l'exemple relatif aux expressions régulières)

    http://msdn.microsoft.com/library/de...ml05192003.asp

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. [RegEx] recherche et replacement dans une chaine de caractère
    Par Ekimasu dans le forum Langage
    Réponses: 5
    Dernier message: 28/11/2006, 21h39
  3. Récuperer un nombre dans une chaine de caractère
    Par ColonelHati dans le forum C
    Réponses: 4
    Dernier message: 27/04/2005, 14h50
  4. [VB.NET] Recherche dans une chaine de caractères
    Par Pleymo dans le forum Windows Forms
    Réponses: 12
    Dernier message: 09/04/2005, 10h25
  5. [C#] Une variable dans une chaine de caractères...
    Par GlorfindelHebril dans le forum Windows Forms
    Réponses: 9
    Dernier message: 31/03/2005, 14h30

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