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 :

Rajouter un tag dans un XML [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut Rajouter un tag dans un XML
    Bonjour

    J'ai une question, certes bête, mais qui me prend la tête..

    J'ai un flux XML ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://xxxxxx.fr/service/SOUSCRIPTION/DETAIL_SOUSCRIPTEUR_RECHERCHER_NOFONCTIONNEL/1.0/">
    	<soap:Header/>
    <soap:Body>
    		<ns:getInfoSouscripteur>
    			<refExtSouscripteur>?</refExtSouscripteur>
    			<natureNo>?</natureNo>
    		</ns:getInfoSouscripteur>
    	</soap:Body>
    </soap:Envelope>
    Je souhaite tout simplement creer un xslt qui me rajouterai une balise dans soap:Header.

    En gros, voilà le resultat que je souhaiterais avoir


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://xxxxxx.fr/service/SOUSCRIPTION/DETAIL_SOUSCRIPTEUR_RECHERCHER_NOFONCTIONNEL/1.0/">
    	<soap:Header>
    		<maBalise>laValeurDeMaBalise</maBalise>
    	</soap:Header>
    	<soap:Body>
    		<ns:getInfoSouscripteur>
    			<refExtSouscripteur>?</refExtSouscripteur>
    			<natureNo>?</natureNo>
    		</ns:getInfoSouscripteur>
    	</soap:Body>
    </soap:Envelope>

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    J'aime pas trop donner des solutions toutes cuites... On est ici pour apprendre, pas pour faire faire son travail par d'autres.

    Disons qu'il faut que tu mettes ce template dans ta feuille XSLT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="soap:Header">
      <xsl:copy>
        <la-balise-que-tu-veux-inserer/>
      </xsl:copy>
    </xsl:template>
    Attention, il faut que le xmlns:soap="http://www.w3.org/2003/05/soap-envelope" soit déclaré dans l'élément <xsl:stylesheet>, sinon le match ne reconnaîtra rien du tout (et en fait, la stylesheet ne compilera pas.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut
    Pourquoi répondre avec cette première phrase qui ne sert à rien?

    Merci pour la réponse quand même. Tu es trop généreux. Il ne fallait pas t’embêter à me répondre.

    Et dans ta logique, un forum ne sert à rien car il y a toutes les réponses sur le net, non?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par daviiiid Voir le message
    Pourquoi répondre avec cette première phrase qui ne sert à rien?
    Pour insinuer que j'aurais voulu voir ce que tu avais déjà essayé, et à quel point exactement tu bloques.
    Si tu n'as rien essayé du tout, on doit pouvoir t'indiquer des tutoriels.
    Si tu as essayé des choses, en partant de tutoriels et autres choses que tu as déjà essayé d'appliquer, mais que ça ne fait pas ce que tu veux et que tu ne sais pas pourquoi, il aurait fallu parler de ces choses-là.

    À partir de maintenant, tu as intérêt à avoir beaucoup, beaucoup réfléchi à la question avant de prétendre que ce que dit quelqu'un ne sert à rien. Ou alors tu attendras que quelqu'un le tolère, pour avoir de l'aide.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    On est ici pour apprendre, pas pour faire faire son travail par d'autres.
    thelvin : +1

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Pour insinuer que j'aurais voulu voir ce que tu avais déjà essayé, et à quel point exactement tu bloques.
    Si tu n'as rien essayé du tout, on doit pouvoir t'indiquer des tutoriels.
    Si tu as essayé des choses, en partant de tutoriels et autres choses que tu as déjà essayé d'appliquer, mais que ça ne fait pas ce que tu veux et que tu ne sais pas pourquoi, il aurait fallu parler de ces choses-là.

    À partir de maintenant, tu as intérêt à avoir beaucoup, beaucoup réfléchi à la question avant de prétendre que ce que dit quelqu'un ne sert à rien. Ou alors tu attendras que quelqu'un le tolère, pour avoir de l'aide.
    C'est un beau discours Je crois que j'ai pris une belle leçon de vie.
    Heureusement que tu m'as fait prendre conscience de mes points faibles. Je vais peut être demander à mon DSI et à mon DRH de me ré-orienter vers une autre voie. Et comme tu as l'air d'être fort dedans, fais moi rêver et dis moi plein de belles choses!

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ouais ben bon courage pour la suite, hein.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je crois ce qui est proposé - sinon, c'est ce que je propose - c'est le suivant:
    [1] Écrire un xsl document identitaire comme la base.
    [2] Puis ajouter un template spécifique, qui va prendre priorité sur celui du [1] pour le match spécifique.
    |3] Ajouter les déclarations de namespace minimale et nécessaire.
    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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    >
    <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes" indent="yes" />
    <xsl:strip-space elements="*" />
    <!-- une transformation identitaire, en gros -->
    <xsl:template match="/">
        <xsl:apply-templates select="*|text()|processing-instruction()|comment()" />
    </xsl:template>
    <xsl:template match="*|@*|text()|processing-instruction()|comment()">
        <xsl:copy>
            <xsl:apply-templates select="*|@*|text()|processing-instruction()|comment()" />
        </xsl:copy>
    </xsl:template>
    <!-- le template spécifique de travail -->
    <xsl:template match="soap:Header">
        <xsl:copy>
            <!-- la position est devant tous les autres; sinon, mets la après -->
            <maBalise>laValeurDeMaBalise</maBalise>
            <xsl:apply-templates select="*|@*|text()|processing-instruction()|comment()" />
        </xsl:copy>
    </xsl:template>
    </xsl:stylesheet>

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, mais il y a plus simple.

    - Sauf indication contraire, output et strip-spaces on s'en fout un peu.
    - Le match sur / n'est pas utile.
    - *|text()|processing-instruction()|comment() peut être remplacé simplement par node() .
    - Si on est vraiment certain qu'il n'y a pas d'attribut (chose courante avec SOAP,) ce n'est pas la peine de les gérer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut
    je tenais a remercier tout le monde pour les réponses qui m'ont bien aidées

    daviiiid

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

Discussions similaires

  1. [JDOM] Rajouter des informations dans un fichier xml
    Par jeanjean6 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/05/2010, 02h42
  2. probleme tags html dans un xml
    Par outhman83 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/02/2009, 17h32
  3. [XSD] Ajout de tags dans XML Schema
    Par ploxien dans le forum Valider
    Réponses: 3
    Dernier message: 20/09/2006, 13h10

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