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 :

Forcer un attribut à une valeur


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Santé

    Informations forums :
    Inscription : mai 2019
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Forcer un attribut à une valeur
    Bonjour,

    Je continue mon apprentissage du XSL sur le terrain à devoir changer des flux à la volée en urgence vu le peu de réaction de certains éditeurs.

    J'ai un flux XML contenant un bout de code ci-après :
    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
    		<actesNGAP>
    			<acteNGAP action="création" executionDimancheJourFerie="non" executionNuit="non" facturable="oui" gratuit="non" porteeCle="l" valide="oui">
    				<identifiant>
    					<emetteur>275560483</emetteur>
    				</identifiant>
    				<lettreCle>FTPU</lettreCle>
    				<coefficient>1</coefficient>
    				<denombrement>1</denombrement>
    				<quantite>1</quantite>
    				<execute>
    					<date>2019-07-02</date>
    					<heure>08:52:00</heure>
    				</execute>
    				<montant liberal="oui">
    					<montantTotal>93.53</montantTotal>
    					<numeroForfaitTechnique>5065</numeroForfaitTechnique>
    					<numeroAgrementAppareil>83779</numeroAgrementAppareil>
    					<quantite>1</quantite>
    					<numeroFacture>1394450810</numeroFacture>
    				</montant>
    			</acteNGAP>
    J'ai besoin que mes actes ngap FTPU dont l'activité liberal est à 'oui' soit changé en acte FTPR avec l'attribut liberal à 'non'.
    J'ai donc commencé mon bout de code pour rechercher ma balise FTPU et changé l'attribut liberal à "non":
    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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
     
    	<xsl:param name="pLiberalValue" select="non"/>
     
    	<xsl:template match="node() | @*">
    		<xsl:copy>
    			<xsl:apply-templates select="@* | node()"/>
    		</xsl:copy>
    	</xsl:template>
     
    	<xsl:template match="//acteNGAP[lettreCle = 'FTPU']/montant/@liberal">
    		<xsl:attribute name="liberal">
    			<xsl:value-of select="$pLiberalValue"/>
    		</xsl:attribute>
    	</xsl:template>
    </xsl:stylesheet>
    Mais je n'ai pas trouvé pour le moment dans ma rechercher sélectionner que les attribut liberal à "oui" et changer aussi le code FTPU en FTPR. Car je peux avoir des actes FTPU avec liberal à "non" et cela je ne dois pas les toucher.

    Merci pour votre aide.

  2. #2
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Santé

    Informations forums :
    Inscription : mai 2019
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je me répond à moi même, j'ai fait un truc comme ça, je sais pas si c'est propre mais cela semble fonctionner :

    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
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
     
    	<xsl:template match="node() | @*">
    		<xsl:copy>
    			<xsl:apply-templates select="@* | node()"/>
    		</xsl:copy>
    	</xsl:template>
     
    	<xsl:template match="//acteNGAP[lettreCle = 'FTPU']/montant/@liberal[. = 'oui']">
    		<xsl:attribute name="liberal">
    			<xsl:value-of select="'non'"/>
    		</xsl:attribute>
    	</xsl:template>
    	<xsl:template match="//acteNGAP/lettreCle[text()='FTPU' and ../montant/@liberal='oui']">
    		<xsl:copy>FTPR</xsl:copy>
    	</xsl:template>
    </xsl:stylesheet>

Discussions similaires

  1. Forcer affichage d'une valeur nulle
    Par francoisK dans le forum Webi
    Réponses: 10
    Dernier message: 27/07/2007, 16h17
  2. forcer l'affichage d'une valeur null
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2005, 09h52
  3. Réponses: 4
    Dernier message: 12/10/2005, 13h13
  4. Attribution de valeur à une matrice
    Par Progs dans le forum C++
    Réponses: 13
    Dernier message: 24/09/2005, 23h43
  5. Réponses: 2
    Dernier message: 07/07/2005, 18h11

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