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] copy-of m'empêche de remodifier les éléments copiés


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Points : 30
    Points
    30
    Par défaut [XSL] copy-of m'empêche de remodifier les éléments copiés
    Bonjour tout le monde,

    Je continue à galérer avec XSL...

    Aujourd'hui, je suis en proie à un problème avec copy-of. Concrètement, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:template match="xhtml:form">
    	<xsl:copy-of select="./*"/>
    	<xsl:apply-templates select="xhtml:form" />	
    </xsl:template>
    Je suis content, il m'a supprimé la balise form en gardant les balises filles.
    Seulement, si je veux supprimer/modifier une de ces balises filles par la suite, et bah il ne veut pas. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="xhtml:input[@type='hidden']">
    	<xsl:apply-templates select="xhtml:input[@type='hidden']" />
    </xsl:template>
    ... ne sera pas appliqué aux balises ayant été contenues dans un form dans le XML original.

    Et là, je ne vois pas comment contourner le problème...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Ben oui, copy-of copie toute la sélection, fils inclus.
    Si tu veux que les noeud fils soient soumis aux divers templates faut :
    <xsl:apply-templates select="*" />

    Si tu cherches juste à supprimer la balise "form" en soumettant les fils aux regles définis par les templates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="xhtml:form">
    	<xsl:apply-templates select="*" />	
    </xsl:template>
    Et, ce qui suit n'a pas de sens connaissant la structure du xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="xhtml:input[@type='hidden']">
    	<xsl:apply-templates select="xhtml:input[@type='hidden']" />
    </xsl:template>
    Ca voudrait dire quand tu rencontres un noeud "input" de type "hidden", applique les regles à ses éventuels noeuds fils "input" de type "hidden". Hors en xhtml ça n'arrive jamais.

Discussions similaires

  1. Lire les fichiers copiés d'une base de données
    Par zaac01 dans le forum Installation
    Réponses: 5
    Dernier message: 18/11/2007, 16h30
  2. [XSL] afficher tous les éléments fils d'un noeud
    Par alexandra dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 07/09/2006, 08h33
  3. [XSL] Sélectionner les éléments qui n'ont pas un certain fils
    Par lebechen dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/07/2006, 17h54
  4. [Info]Copie un code java en gardant les couleur des syntaxes
    Par Thzith dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 17/01/2006, 20h51
  5. Copies de flots en passant par les itérateurs
    Par Christophe Brun dans le forum C++
    Réponses: 7
    Dernier message: 02/07/2003, 11h41

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