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] Extraction d'une sous-chaine dans une chaine?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 17
    Points
    17
    Par défaut [XSLT] Extraction d'une sous-chaine dans une chaine?
    Bonjour,

    Pour ne pas changer, ma question concerne une transormation dans un glossaire en XML.

    J'ai un glossaire en XML constitué des balises <terme> et <definition>.
    <definition> contient bien sûr des définitons mais contient aussi de temps en temps des synonymes toujours précédés par la phrase "aussi connu sous" ou "Aussi connu sous".

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <terme>octocoralliaires </terme>
    <definition>classe de cnidaires anthozoaires à symétrie axiale d'ordre huit. Aussi connu sous anthozoaires.</definition>
    J'aimerais arriver au résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <terme>octocoralliaires </terme>
    <definition>classe de cnidaires anthozoaires à symétrie axiale d'ordre huit.
    <synonyme>anthozoaires</synonyme>
    Pour le moment j'arrive seulement à détecter dans mon XML les définitions contenant "Aussi connu sous" et à les afficher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <xsl:template match="node">
       <xsl:choose>		
          <xsl:when test="contains(definition,'Aussi connu sous') or contains(definition,'aussi connu sous')">
             <synonyme><xsl:value-of select="definition"/></synonyme>
          </xsl:when>
       </xsl:choose>
       <xsl:apply-templates/>
    </xsl:template>
    Ma question est: Est-ce qu'il y a un moyen avec XSLT d'extraire ce qui est après "aussi connu sous"?

    Merci pour votre aide :-)

  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
    Bonjour,

    tu devrais obtenir ce résultat en utilisant les fonctions XPath contains(), substring-before() et substring-after(). Tu peux t'inspirer de l'exemple donné dans la FAQ.
    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

Discussions similaires

  1. extraction d'un sous élèment dans une variable javascript
    Par jowelle dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/12/2011, 12h56
  2. [RegEx] Remplacement de chaine dans une sous chaine
    Par fpouget dans le forum Langage
    Réponses: 4
    Dernier message: 23/02/2010, 08h49
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. recherche d'une chaine dans une sous chaine
    Par claralavraie dans le forum Oracle
    Réponses: 1
    Dernier message: 31/07/2006, 12h00
  5. Réponses: 28
    Dernier message: 22/09/2005, 11h57

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