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]Copier en mettant à jour


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de VinnieMc
    Inscrit en
    Décembre 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 208
    Par défaut [XSL]Copier en mettant à jour
    Bonjour, j'ai deux fichiers XML, les voici :

    book1.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
     
    <livre>
    <chapitre name="Chap1" num="1" lu="0">
    <page num="1" lue="0">
    </page>
    <page num="2" lue="0">
    </page>
    <page num="3" lue="0">
    </page>
    <page num="4" lue="0">
    </page>
    <page num="5" lue="0">
    </page>
    </chapitre>
    </livre>
    book2.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
     
    <livre>
    <chapitre name="Chap1" num="1" lu="TRUE">
    <page num="1" lue="TRUE">
    </page>
    <page num="2" lue="TRUE">
    </page>
    <page num="3" lue="TRUE">
    </page>
    <page num="4" lue="FALSE">
    </page>
    <page num="5" lue="FALSE">
    </page>
    </chapitre>
    </livre>
    Mon but est de copier entièrement le fichier book1.xml tout en mettant à jour la valeur des attributs "lue" des éléments <page> après vérification dans book2.xml, pour avoir une version du fichier xml mise à jour.
    Voici ma feuille xsl, mais ça ne marche pas, je me suis inspiré d'un exemple que j'ai trouvé sur le site, ici :http://xml.developpez.com/sources/?page=modifs#I_maj.

    xsl:
    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
     
    <xsl:template match="node()">
    	<xsl:copy>
    		<xsl:apply-templates select="node()|@*"/>
    	</xsl:copy>
    </xsl:template>
     
     
    <xsl:template match="@*">
    		<xsl:choose>
    			<xsl:when test="document('book2.xml')/livre/chapitre/page/@lue='TRUE'">
    				<xsl:attribute name="lue">
    					<xsl:value-of select="replace(.,'0','TRUE')"/>
    				</xsl:attribute>	
    			</xsl:when>
    			<xsl:otherwise>
    				<xsl:attribute name="{name()}">
    					<xsl:value-of select="."/>
    				</xsl:attribute>
    			</xsl:otherwise>
    		</xsl:choose>			
    	</xsl:template>
     
     
    </xsl:stylesheet>
    J'utilise Saxon8 avec java si ça peut aider.

    D'avance merci.

  2. #2
    Membre confirmé Avatar de VinnieMc
    Inscrit en
    Décembre 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 208
    Par défaut
    Salut à tous,

    c'est bon j'ai résolu mon problème, j'ai trouvé la solution sur cette page section "Change only a small part of an XML file" http://www.dpawson.co.uk/xsl/sect2/i....html#d6349e43.


    Cordialement.

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

Discussions similaires

  1. Lancer cmd en mettant à jour le path
    Par oodini dans le forum Windows XP
    Réponses: 3
    Dernier message: 08/01/2010, 21h41
  2. Trigger mettant à jour un champ dans même table
    Par doczorg dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/08/2009, 15h51
  3. Réponses: 2
    Dernier message: 07/05/2009, 09h12
  4. menu déroulant se mettant à jour selon sélection du précédent
    Par Scopas dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/03/2009, 18h24
  5. Formulaire mettant à jour une base de données
    Par santille dans le forum Langage
    Réponses: 1
    Dernier message: 25/09/2008, 20h57

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