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 :

[XPATH] Gros soucis de template...


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut [XPATH] Gros soucis de template...
    bonjour,
    j ecris un xsl permettant de recopier les élément étant dans un doc un pas dans un autre, on reconnait ces élément grave à leur attribut id et leur position relative au noeud root...
    le problème est que pour les éléments nouveaux, c est simple je les compare avec ceux contenu dans un autre doc...
    le probleme vient des élément à supprimer à savoir comparer ceux de l autre doc avec ceux du doc courant... voici le probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:template name="aretirer">
    		<xsl:for-each select="document('REF.xml')//*[parent::root and *[1][not(@id=.//*[parent::root]/*[1]/@id) ]]">
    			<xsl:element name="aretirer">
    				<xsl:copy-of select="."/>
    			</xsl:element>
    		</xsl:for-each>
    	</xsl:template>
    j ai l impression qu au moment ou j ecris
    .//*[parent::root]/*[1]/@id je perd le contexte du doc courant qui devient...l autre doc
    j ai réglé le problème en écrivant ce qui suit
    directement sous <xsl:stylesheet/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="currentDoc" select="/"/>
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:template name="aretirer">
    		<xsl:for-each select="document('REF.xml')//*[parent::root and *[1][not(@id=$currentDoc//*[parent::root]/*[1]/@id) ]]">
    			<xsl:element name="aretirer">
    				<xsl:copy-of select="."/>
    			</xsl:element>
    		</xsl:for-each>
    	</xsl:template>
    alors voila ma question:
    comment refaire référence au doc courant sans passer par cette variable??

    Merci

  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,

    utiise la fonction XPath current(), qui renvoie le noeud courant, et non pas le noeud contextuel. Pour remonter de ce noeud courant à la racine, utilise cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    current()/ancestor::node()//root/*/*[1]/@id
    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

  3. #3
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    trop cool

  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 : 47
    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
    Citation Envoyé par GrandFather
    Bonjour,

    utiise la fonction XPath current()
    Fonction XSLT

  5. #5
    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
    Citation Envoyé par Erwy
    Citation Envoyé par GrandFather
    Bonjour,

    utiise la fonction XPath current()
    Fonction XSLT
    Exact.
    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

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

Discussions similaires

  1. Gros souci microsoft jet
    Par xboulney dans le forum Access
    Réponses: 26
    Dernier message: 21/02/2006, 16h24
  2. interface à concevoir toute simple et gros soucis
    Par skystef dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/02/2006, 16h31
  3. [Visual Studio 2003] J'ai un très gros souci !
    Par bart64 dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 18/11/2005, 15h01
  4. [C#][Visual C# Express] Gros souci avec Excel
    Par poullos dans le forum EDI/Outils
    Réponses: 7
    Dernier message: 18/11/2005, 13h15
  5. Gros soucis avec pgaccess et postgresql
    Par Missvan dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 13/04/2004, 16h16

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