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] structure récursive


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut [XPath] structure récursive
    Bonjour

    Je suis un débutant en Xpath. J'essaye depuis d'extraire un partie d'un fichier XML à l'aide de XPath, mais je n'arrive pas au résultat souhaité.

    Voici un peu à quoi ressemble le contenu de mon fichier 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
     
          <niveau1>
    	  <niveau1>
    		  <u1>
                      <ustext>Mon Titre 1</ustext>
                      </u1>
                      <rz>39</rz>
                      <para>MonParagraphe 1</para>
                      <rz>40</rz>
                      <para>MonParagraphe 2</para>
                      <rz>41</rz>
                      <para> MonParagraphe 3</para>
             </niveau1>
    	 <niveau1>
                     <u1>
                      <ustext>Mon Titre 2</ustext>
                      </u1>
                      <rz>39</rz>
                      <para>MonParagraphe 4</para>
                      <rz>40</rz>
                      <para>MonParagraphe 5</para>
                      <rz>41</rz>
                      <para>MonParagraphe 6</para>
             </niveau1>
          </niveau1>
    Je voudrais extraire rien que les parties comprises entre les <niveau1> pour obtenir un truc de ce genre:
    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
     
                      <u1>
                      <ustext>Mon Titre 1</ustext>
                      </u1>
                      <rz>39</rz>
                      <para>MonParagraphe 1</para>
                      <rz>40</rz>
                      <para>MonParagraphe 2</para>
                      <rz>41</rz>
                      <para> MonParagraphe 3</para>
     
                      <u1>
                      <ustext>Mon Titre 2</ustext>
                      </u1>
                      <rz>39</rz>
                      <para>MonParagraphe 4</para>
                      <rz>40</rz>
                      <para>MonParagraphe 5</para>
                      <rz>41</rz>
                      <para>MonParagraphe 6</para>
    Voici à quoi ressemble mon code Xpath:
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="xml" indent="yes"/>
     
    <xsl:template match="@*">
      <xsl:copy />
    </xsl:template>
    <xsl:template match="*">
      <xsl:element name="{name()}" >
        <xsl:apply-templates select="* | text() | @*"/>
      </xsl:element>
    </xsl:template>
     
    <xsl:template match="niveau1">
    	<xsl:copy-of select="./*"/>
        <xsl:copy-of select="/niveau1/following::*"/>
    </xsl:template>
     
    </xsl:stylesheet>
    Quelqu'un pourrait-il me donner une orientation?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour, et bienvenue sur les forums de Developpez.com

    le souci est que ton template "niveau1" fait une copie des enfants de niveau1, alors qu'il devrait se contenter de continuer à descendre l'arbre de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="niveau1">
      <xsl:apply-templates />
    </xsl:template>
    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
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut
    Ca marche!!!

    Merci bcp

Discussions similaires

  1. structures récursives en C
    Par space_56 dans le forum C
    Réponses: 1
    Dernier message: 15/11/2007, 19h04
  2. [Xpath] Structure du document et performance
    Par agrotic dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 12/10/2007, 19h20
  3. [Xpath] Structure du document et performance
    Par agrotic dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/10/2007, 16h02
  4. Problème de structure "récursive"
    Par Pxnet dans le forum C
    Réponses: 5
    Dernier message: 21/01/2007, 17h20
  5. [XSD] structure récursive et clés, un casse-tête
    Par judpoir dans le forum Valider
    Réponses: 7
    Dernier message: 17/01/2007, 17h19

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