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 :

Contenu XML d'un noeud [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Par défaut Contenu XML d'un noeud
    Salut,

    Je suis sur un tit problème XSLT, voici mon fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <root>
    <nom>toto</nom>
    <description>
    bla bla bla <b>blo blo</b> bla bla bla
    </description>
    </root>
    Je veux copier le contenu de <description> avec les balises qui y sont présent. j'ai essayé avec copy-of mais elle prend aussi le balise <description> avec le résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:copy-of select"//description/."/>
    qui retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <description>
    bla bla bla <b>blo blo</b> bla bla bla
    </description>
    et moi je veux ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bla bla bla <b>blo blo</b> bla bla bla
    y'a t il pas moyen de prendre uniquement le contenu ?????

    merci d'avance.

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour,

    il suffit d'appliquer la règle copy-of aux enfants de l'élément description.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="description">
      <xsl:copy-of select="child::*"/>
    </xsl:template>

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Par défaut
    Merci pour la réponse, mais elle n'est malheureusement pas correcte.

    En effet, tu lui dis de prendre une copie de tous les nœuds contenus dans description. Tu ne prend donc pas le texte libre.

    le résultat de te requête est donc
    et moi je voulais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bla bla bla <b>blo blo</b> bla bla bla
    En fait, faire description/. est actuellement mieux, mais il y a copy-of qui lui rajoute la balise parent pour en faire un document xml valide je suppose.

  4. #4
    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 : 49
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Citation Envoyé par saidgrd Voir le message
    En fait, faire description/. est actuellement mieux, mais il y a copy-of qui lui rajoute la balise parent pour en faire un document xml valide je suppose.
    non,description/. ou description c'est exactement la même chose, rien à voir avec quoi ce soit d'ajouter par XSLT, tu lui dis bien de copier description


    Citation Envoyé par saidgrd Voir le message
    En effet, tu lui dis de prendre une copie de tous les nœuds contenus dans description. Tu ne prend donc pas le texte libre.
    Non son erreur est justement de ne pas prendre tous les noeuds mais seulement les noeuds elements, c'est justement tous les noeuds qu'il faut prendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="description">
      <xsl:copy-of select="child::node()"/>
    </xsl:template>
    En passant le "texte libre" ça n'existe pas en XPath, je te conseille de jeter un oeil ici, tu as besoin de comprendre comment fonctionne les méthodes de parcourset de réviser la notion de noeuds XPath :
    http://erwy.developpez.com/tutoriels...selection-xml/

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Par défaut
    Parfait ça marche, merci

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

Discussions similaires

  1. Saisie de contenu XML (Infopath, OOo...)
    Par Maximil ian dans le forum XML/XSL et SOAP
    Réponses: 22
    Dernier message: 21/10/2005, 16h30
  2. [C#] [XML] Insérer un noeud entre un parent et ses enfants
    Par frechy dans le forum Windows Forms
    Réponses: 10
    Dernier message: 04/04/2005, 15h52
  3. [DOM] Accès au contenu textuel d'un noeud avec DOM
    Par comexe2 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/07/2004, 15h41
  4. OpenOffice comme éditeur WYSIWYG de contenu XML ?
    Par lilouTwo dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 01/07/2004, 14h43
  5. [VB.NET] XML - Trier des noeuds
    Par nako dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/06/2004, 09h13

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