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 :

Conversion structure fichier XMl avec un fichier XSLT


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut Conversion structure fichier XMl avec un fichier XSLT
    Bonjour, je souhaiterai convertir un fichier XML avec l'aide d'un fichier XSLT dans un nouveau fichier XML compatible avec un import pour un logiciel spécifique svp.
    Mon fichier généré est affiché comme ceci:
    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
      <?xml version="1.0" encoding="UTF-8" ?> 
    - <data>
    - <post>
      <Numrodecommande>4501</Numrodecommande> 
      <DatedelaCommande>2021-06-16 08:19:39</DatedelaCommande> 
      <ClientIDdelutilisateur>1</ClientIDdelutilisateur> 
      <BillingLastName>save</BillingLastName> 
      <BillingFirstName>philippe</BillingFirstName> 
      <BillingAddress1>23 Avenue du Général Leclerc</BillingAddress1> 
      <BillingAddress2>Le Clos du Bon Plan</BillingAddress2> 
      <BillingPostcode>13960</BillingPostcode> 
      <BillingCity>Sausset Les Pins</BillingCity> 
    - <OrderItems>
    - <Item>
      <Rference>900108073801</Rference> 
      <Price>200.00</Price> 
      <Stock>0</Stock> 
      </Item>
      </OrderItems>
      <PaymentMethodTitle>Virement bancaire</PaymentMethodTitle> 
      <TotalCommande>200.00</TotalCommande> 
      </post>
      </data>
    C'est un fichier de commandes d'articles E commerce de Wordpress.
    Mon client attends un fichier du format (fichier DTD de format du fichier à traiter):

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    	<!--
    	*****************************************************************************************************	
    	les balises :
    	===============
    		?  sont les rubriques facultatives du fichier des ventes de Proshop. 
    		Si elles sont renseignées, leurs valeurs seront enregistrées.
     
    		Les autres balises représentent les données obligatoires
     
    	les attributs :
    	=================
    		#IMPLIED  sont des données facultatives.Ce sont des rubriques de fichiers liés aux ventes
    		Elles existent d'une facon obligatoires ou non dans Proshop, mais ne seront pas enregistrées. 
    		Elles peuvent servir pour info, requetes, controles etc. 
     
    		#REQUIRED sont des données obligatoires pour l'enregistrement des ventes dans Proshop.
    		Elles sont communes à tous les élements fils
     
    	Les entités et CDATA :
    	=======================
    		Les sections CDATA 	ne sont pas reconnues par WINDEV par conséquent  
    			 Ne pas écrire : 	<nom><![CDATA[DUPOND & CIE]]></nom>
    					Ecrire :	<nom>DUPOND &amp; CIE</nom>
     
    		Entités XML à respecter :		
    			&lt; 	< 	inférieur à
    			&gt; 	> 	supérieur à
    			&amp; 	& 	et commercial
    			&apos; 	' 	apostrophe
    			&quot; 	" 	double quote
     
        Type de données
        ====================
        exemple    magasin entier <= 3  = entier sur 3 chiffres maximum
    	*****************************************************************************************************
    	-->
     
    <!ELEMENT proshop (ventes+)>
     
    <!ATTLIST proshop
    	datesysteme 		CDATA   #REQUIRED > 	
    	<!-- date et heure de création du document 
          datetime AAAA-MM-JJtHH-MM-SS -->
     
    <!ELEMENT ventes (ticket+) >
    <!ATTLIST ventes 
    	date 		CDATA #REQUIRED 				 	
    	magasin CDATA	#REQUIRED >
    	<!-- 	date AAAA-MM-JJ
    			  magasin entier <= 3 -->
     
    <!ELEMENT ticket (client?, produits, reglements) >
    <!ATTLIST ticket
    	numero 	 CDATA 	#REQUIRED	
    	heure 	 CDATA 	#REQUIRED >
    	<!--  numero: chaine
            heure: HH:MM -->
     
    <!ELEMENT client  (code?,nofidelite?,civilite?,nom,prenom?,adresse1?,adresse2?,codepostal?,ville?,telephone?, email?,commentaire?) >
    <!ELEMENT code 			 	(#PCDATA)>		<!-- 2 < chaine < 14 -->
    <!ELEMENT nofidelite	 	(#PCDATA)>		<!-- gencod numérique 12 | 13-->
    <!ELEMENT civilite 			(#PCDATA)>		<!-- chaine < 7 -->
    <!ELEMENT nom 				(#PCDATA)>		<!-- 2 < chaine < 36 -->
    <!ELEMENT prenom 			(#PCDATA)>		<!-- chaine < 26 -->
    <!ELEMENT adresse1 			(#PCDATA)>		<!-- chaine < 36 -->
    <!ELEMENT adresse2 			(#PCDATA)>		<!-- chaine < 36 -->
    <!ELEMENT codepostal		(#PCDATA)>		<!-- chaine < 9 -->
    <!ELEMENT ville				(#PCDATA)>		<!-- chaine < 31 -->
    <!ELEMENT telephone			(#PCDATA)>		<!-- chaine < 21 -->
    <!ELEMENT email				(#PCDATA)>		<!-- chaine < 51 -->
    <!ELEMENT commentaire 		(#PCDATA)>		<!-- chaine < 31 -->
     
     
    <!ELEMENT produits (article+)>
     
    <!ELEMENT article (type?, gencod,taille,prht?,tva?,pvttc,quantite?, remise?,coderemise?, commentaire?)>
    <!ATTLIST article 
    	libelle 			CDATA 	#IMPLIED
      couleur 		CDATA 	#IMPLIED
    	fournisseur			CDATA 	#IMPLIED
    	gfsf	 			CDATA 	#IMPLIED
    	ligneproduit		CDATA 	#IMPLIED
    	collection 			CDATA 	#IMPLIED >
    	<!--Aucune contrainte -->
     
    <!ELEMENT type			(#PCDATA)>		<!-- chaine "V" |H | BA -->
    <!ELEMENT gencod		(#PCDATA)>		<!-- gencod 12 | 13 -->
    <!ELEMENT taille		(#PCDATA)>		<!-- 0 < chaine < 5 -->
    <!ELEMENT prht			(#PCDATA)>		<!-- reel -->
    <!ELEMENT tva			(#PCDATA)>		<!-- reel -->
    <!ELEMENT pvttc			(#PCDATA)>		<!-- reel -->
    <!ELEMENT quantite		(#PCDATA)>		<!-- entier -->
    <!ELEMENT remise		(#PCDATA)>		<!-- reel -->
    <!ELEMENT coderemise 	(#PCDATA)>		<!-- chaine < 5 -->
     
     
    <!ELEMENT reglements (mode+)>			
    <!ELEMENT mode	(code,montant)>
    <!ATTLIST mode
    	libelle CDATA #IMPLIED > <!--Aucune contrainte -->
     
    <!--ELEMENT 	code	(#PCDATA)>	voir plus haut		 1 < chaine < 6 -->
    <!ELEMENT montant	(#PCDATA)>		<!-- reel -->
    Et voici un exemple du fichier attendu à intégrer:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?xml version='1.0'  encoding="iso-8859-1"?>
     <!DOCTYPE proshop SYSTEM "ProshopVente.dtd">
     
    <proshop datesysteme="2008-06-18T15:12:30">
    	<ventes date="2008-06-07" magasin="003">
    		<ticket numero="12564" heure="10:05:33"> 			
    			<client>
    				<code>152365425</code>
    				<nom>AUFRAISE</nom>
    				<prenom>charlotte</prenom>
    				<adresse1>15 impasse du bout du monde</adresse1>
    				<codepostal>33000</codepostal>
    				<ville>BORDEAUX</ville>
    			</client>
    			<produits>
    				<article libelle="pantalon toile" collection="E08">
    					<type>V</type>
    					<gencod>9001058674015</gencod>
    					<taille>=TU</taille>
    					<pvttc>4.50</pvttc>
    					<quantite>2</quantite>
    				</article>
    				<article>
    					<type>R</type>
    					<gencod>FDP</gencod>
    					<taille></taille>
    					<pvttc>8.50</pvttc>
    					<remise></remise>
    					<coderemise></coderemise>
    				</article>
    			</produits>
    			<reglements>
    				<mode>
    					<code>cb</code>
    					<montant>11.0</montant>
    				</mode>
    			</reglements>
    		</ticket>
    	</ventes>
    </proshop>

    Alors ma question est svp:
    Quel est le code du fichier XSLT qui pourrait me permettre de passer du premier fichier (en descriptif car les données sont différentes) au même format que le dernier?
    Merci pour votre aide
    P SAVE

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    c'est le code que te fournirait un informaticien si tu l'embauchais pour faire ce travail.

    Tu ne pensais pas sérieusement qu'on allait juste faire ton boulot comme ça ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Bonsoir, oui et alors je pensais que vous étiez des professionnels !!
    ça vous pose un problème de m'aider ? si oui a quoi servent les forums d'aide alors !!!!
    Merci quand même pour la réponse même négative .
    P SAVE

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Si ça pose problème ?

    D'aider, non.

    De faire le travail des autres, si.

    Il fallait poser des questions sur comment on commence une feuille de style XSLT 2.0, comment on traite le premier élément, puis le second, et ainsi de suite.

    D'ailleurs je me rends compte qu'il est de toute façon impossible de savoir ce qu'il y a à faire, puisque tu n'as pas dit quels sont les éléments qui doivent être transformés en quels autres, ni quelles valeurs il faut prendre du premier pour donner quelles valeurs correspondantes dans le second.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Ok "informatique OLD School" c'est pas un problème j'ai connu cela à mes 20 ans j'ai ai 62 ... pour être plus clair:
    Je génére depuis wordpress sous Woocommerce avec le plugin Wp ALL export un fichier de commandes client avec un certain format (premier fichier XML copié au début de ma discussion), ce fichier doit être importé dans une application sous Windev qui attends un autre format (troisième fichier XML copié en fin de ma discussion) mais les format sont differents (deuxième fichier copié au milieu de la discussion DTD descripti du format final attendu).
    Je souhaiterais donc y ajouter un fichier XSLT qui puisse tranformer le premier fichier vers le format du second fichier en utilisant le DTD descriptif des données originalement prévu.
    Voilà..j'espère avoir été clair cette fois ci.
    Merci
    P SAVE

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ben, bien sûr que non. Déjà t'as donné aucune des infos dont j'ai signalé qu'elles sont évidemment indispensables.

    Mais, bon, de toute façon ça change rien au fait qu'on est pas là pour faire ton travail. Cette feuille XSLT que tu aimerais mettre en œuvre, c'est à toi de l'écrire. Nous, on est là pour qu'à chaque ligne dont tu ne comprends pas pourquoi elle ne fait pas ce que tu veux, tu puisses nous demander et qu'on t'explique comment ça marche. Ce qui te mènera, à la fin, à terminer ta feuille XSLT. Bien sûr tu dois commencer par apprendre XSLT, pour savoir sur quoi tu as besoin d'aide. (Ça te fera probablement aussi découvrir que de toute façon, tu n'as aucune idée ni de comment ni d'où l'appliquer, ta feuille de style.)

    Je vois pas ce qu'il y a de old school. J'ai pas observé une mode récente de s'empresser de venir faire le travail à la place des autres en échange de rien.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    OK, je comprends le principe de votre forum, mais je n'ai ni le temps ni l'envie d'apprendre le XSLT ou le CSS ou le PHP ou Javascript ou Jason ou python ou le C Sharp ou j'en sais rien quoi d'autre langage qui va me servir qu'une fois pour régler ce petit problème de format de fichier, j'ai déja connu le Fortran, le Cocol, Le sql et le T-SQl et le pl-sql et le basic et le visualbasic, le C le C++ ouffff STOP.
    Je vais proposer de generer un fiohcier CSV c plus simple et on verra.....................
    Bonne continuation avec un nouveau langage par an vous avez assuré votre avenir.
    Merci pour votre ........ conseil .

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    J'ai un principe.. dans la vie il faut savoir donner sans attendre en retour, je suis en train de mettre en place un site de E-commerce pour un ami sans rien lui demander juste un merci ça me suffit mon seul problème est ce fichier ..... et à cause de ce putain de fichier au mauvais format son site risque de ne pas voir le jour ...
    Je vais trouvé une autre solution .... je suis Gascon alors ça va le faire!
    Merci encore

  9. #9
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Il s'agit de xslt une téchnologie, nouvelle peut-être pour quelqu'un, mais pas seulement. Il s'agit avant tout la précision du problème, viz, quelles relations latentes entre le fichier initial et le fichier souhaité. Par exemple, comment l'attribut datesysteme est lié avec les données dans le fichier initial ? La valeur 2008-06-18T15:12:30 n'apparait nulle part dans le fichier initial. Personne ne peut deviner avec certitude comment arriver cette valeur. Or, ce genre de relation est au coeur de façonner un xslt adéquat. Autrement dit, il faut au moins montrer une échantillon à deux fichiers cohérente: un fichier résultant qui vient directement du fichier initial de par un xslt, pas n'importe quel fichier validé par un DTD. Avoir un DTD pour le fichier résultant, c'est très bien, mais ça n'aide pas du tout au premier temps la construction d'un xslt recherché.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Bonjour, je comprends votre problème, mais c'est difficile à expliquer pour moi.
    Je vais encore essayer plus clarement j'espère, mon premier fichier est le fichier généré par le plugin Wp All Export depuis des commandes wordpress woocommerce avec des données réelles mais ce format de fichier n'est pas correct dans structure pour être importé tel quel dans une application tierce sous Windev dont la définition du format attendu est mon fichier DTD avec son fichier XML joint comme exemple (la structure et les données sont differentes).
    MOn but est de pouvoir transformer si possible avec un fichier XSLT mon fichier XML initial généré par le plugin en un fichier XML attendu par l'application sous Windev afin de pouvoir être importé correctement à vue du fichier de définition le DTD.
    Merci
    P SAVE

  11. #11
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    ... mais c'est difficile à expliquer pour moi.
    Ce n'est jamais facile, c'est vrai. Mais sans franchi cette étape, on ne peut pas non plus !

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Je sais merci mais bon je pensais que mon explication était assez claire transformer un fichier XML en un autre avec un fichier XSLT c'est le but du fichier XSLT non? Enfin je pensais..
    Merci
    P SAVE

  13. #13
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Qui parle transformation parle relation ou mappage entre deux ensembles : ça me semble logique.

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Oui exactement je dois passer d'un fichier à l'autre donc mapper les champs en correspondance entre les deux fichiers XML et utiliser un fichier XSLT pour faire ce mappage.
    Merci
    P SAVE

  15. #15
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Comme à chaque fois vous répondez avec de l'incompréhension, quoi que étonnante, ça montre au moins vous voudriez comprendre le sujet. Je suis volontaire d'expliquer un peu plus que je sens confortable.

    Donnons deux ensembles {a, b, c} et {d, e, f} (en principe pas nécessaire de la même cardinalité). Evidemment, le map (a, b, c) --> (d. e, f) n'est pas la même que (a, b, c) --> (e. d, f). Or, le même en xslt, il faut savoir on parle en quelle relation exactement plutôt que les autres. Ce n'est pas ça ?

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Ok j'ai peut-être du mal à m'expliquer et je vais prendre un exemple concret issu de mes fichiers ci-dessus*:
    Mon fichier initial est composé de champs généraux pour la commande traitée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <Numrodecommande>4501</Numrodecommande> 
      <DatedelaCommande>2021-06-16 08:19:39</DatedelaCommande>
    Mon fichier XML attendu de résultat (défini par le fichier DTD joint) apres le traitement du fichier XSLT doit être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <proshop datesysteme="2008-06-18T15:12:30">
    	<ventes date="2008-06-07" magasin="003">
    		<ticket numero="12564" heure="10:05:33">
    Le question est comment passer avec le ichier XSLT de l'un à l'autre ?

    Mon fichier initial est composé de champs client pour la commande traitée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ClientIDdelutilisateur>1</ClientIDdelutilisateur> 
      <BillingLastName>save</BillingLastName> 
      <BillingFirstName>philippe</BillingFirstName> 
      <BillingAddress1>23 Avenue du Général Leclerc</BillingAddress1> 
      <BillingAddress2>Le Clos du Bon Plan</BillingAddress2> 
      <BillingPostcode>13960</BillingPostcode> 
      <BillingCity>Sausset Les Pins</BillingCity>
    Mon fichier XML attendu de résultat (défini par le fichier DTD joint) apres le traitement du fichier XSLT doit être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <client>
    				<code>1</code>
    				<nom>save</nom>
    				<prenom>philippe</prenom>
    				<adresse1>23 Avenue du Général Leclerc</adresse1>
    				<codepostal>13960</codepostal>
    				<ville>Sausset Les Pins</ville>
    			</client>
    Le question est comment passer avec le ichier XSLT de l'un à l'autre ?

    Mon fichier initial est composé de champs items ou produits pour la commande traitée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <OrderItems>
    - <Item>
      <Rference>900108073801</Rference> 
      <article libelle="pantalon toile"</article libelle>
      <collection="E08"</collection>
      <taille>=TU</taille>
      <Price>200.00</Price> 
      <Stock>2</Stock> 
      </Item>
      </OrderItems>
    Mon fichier XML attendu de résultat (défini par le fichier DTD joint) apres le traitement du fichier XSLT doit être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <produits>
    				<article libelle="pantalon toile" collection="E08">
    					<type>V</type>
    					<gencod>900108073801</gencod>
    					<taille>=TU</taille>
    					<pvttc>200.00</pvttc>
    					<quantite>2</quantite>
    				</article>
    			</produits>
    Le question est comment passer avec le fichier XSLT de l'un à l'autre ?

    Mon fichier initial est composé de champs réglement pour la commande traitée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <PaymentMethodTitle>Virement bancaire</PaymentMethodTitle> 
      <TotalCommande>200.00</TotalCommande>
    Mon fichier XML attendu de résultat (défini par le fichier DTD joint) apres le traitement du fichier XSLT doit être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <reglements>
    				<mode>
    					<code>Virement bancaire</code>
    					<montant>200.00</montant>
    				</mode>
    			</reglements>
    Le question est comment passer avec le fichier XSLT de l'un à l'autre ?
    Voilà vous avez tous les détails concernant la structure des données initiales, la structure des données attendues et leur descriptif (DTD)...
    Merci
    P SAVE

  17. #17
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Il y a beaucoup de fautes, de frappe ou pas, dans le dernier poste. Mais on doit aller en avant tout de même.

    Voici un premier aproache ... Là ou la donnée n'est douteuse, je mets "sais pas" comme valeur et mets un commentaire dans le xslt. J'écris avec la syntaxe favorisant une version plus longue que plus compacte - mais ce n'est jamais un issue essentiel dans le sujet.
    Code xslt1 : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="iso-8859-1" indent="yes" omit-xml-declaration="false" />
    <xsl:template match="/">
    	<xsl:apply-templates select="*" />
    </xsl:template>
    <xsl:template match="data">
    	<xsl:element name="proshop">
    		<xsl:attribute name="datesysteme">
    			<xsl:value-of select="'sais pas'" />	<!-- 2008-06-18T15:12:30 ne vient de nulle part -->
    		</xsl:attribute>
    		<xsl:apply-templates select="*" />
    	</xsl:element>
    </xsl:template>
    <xsl:template match="post">
    	<xsl:element name="ventes">		<!-- 10:05:33 ne vient de nulle part -->
    		<xsl:attribute name="date">
    			<xsl:value-of select="DatedelaCommande" />
    		</xsl:attribute>
    		<xsl:attribute name="magasin">
    			<xsl:value-of select="'sais pas'" />	<!-- 003 ne vient de nulle part -->
    		</xsl:attribute>
    		<xsl:element name="ticket">
    			<xsl:attribute name="numero">
    				<xsl:value-of select="NumerodeCommande" />
    			</xsl:attribute>
    			<xsl:attribute name="heure">
    				<xsl:value-of select="'sais pas'" />	<!-- 10:05:33 ne vient de nulle part -->
    			</xsl:attribute>
    			<xsl:element name="client">
    				<xsl:element name="code">
    					<xsl:value-of select="ClientIDdelutilisateur" />
    				</xsl:element>
    				<xsl:element name="nom">
    					<xsl:value-of select="BillingLastName" />
    				</xsl:element>
    				<xsl:element name="prenom">
    					<xsl:value-of select="BillingFirstName" />
    				</xsl:element>
    				<xsl:element name="adresse">
    					<xsl:value-of select="BillingAddress1" />
    				</xsl:element>
    				<xsl:element name="codepostal">
    					<xsl:value-of select="BillingPostcode" />
    				</xsl:element>
    				<xsl:element name="ville">
    					<xsl:value-of select="BillingCity" />
    				</xsl:element>
    			</xsl:element>
    			<xsl:apply-templates select="OrderItems" />
    		</xsl:element>
    	</xsl:element>
    </xsl:template>
    <xsl:template match="OrderItems">
    	<xsl:element name="produits">
    		<xsl:apply-templates select="Item" />
    	</xsl:element>
    </xsl:template>
    <xsl:template match="Item">
    	<xsl:element name="article">
    		<xsl:copy-of select="@labelle" />
    		<xsl:attribute name="collection">
    			<xsl:value-of select="collection" />
    		</xsl:attribute>
    		<xsl:element name="type">
    			<xsl:value-of select="'sais pas'" />	<!-- V ne vient de nulle part -->
    		</xsl:element>
    		<xsl:element name="gencode">
    			<xsl:value-of select="Rference" />
    		</xsl:element>
    		<xsl:copy-of select="taille" />
    		<xsl:element name="pvctc">
    			<xsl:value-of select="Price" />
    		</xsl:element>
    		<xsl:element name="quantity">
    			<xsl:value-of select="Stock" />
    		</xsl:element>
    	</xsl:element>
    </xsl:template>
    </xsl:stylesheet>
    N.B Attention aux typos si il y en a.

    C'est tout ce que je peux vous aider. Le reste c'est à vous.

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour votre, c’est un bon point de départ afin de comprendre comment cela fonctionne.
    Je vais essayer de continuer une question pour l'instant :
    Ou et comment dois-je mentionner le nom du fichier final tranformé avec le XLST et la fichier XLST dans le fichier de départ XML svp?
    Merci
    P SAVE

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    J'ai regardé votre fichier et je crois qu'il manque la fin cad à partir de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		<PaymentMethodTitle>Virement bancaire</PaymentMethodTitle>
    		<TotalCommande>200.00</TotalCommande>
    Ce qui concerne le règlement ..
    Merci P SAVE

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Bonjour, quand voua mettez je ne sais pas sur certaines valeurs non définies dans le fichier initial est-il possible de mettre des valeurs en dur comme pour l'exemple du magasin valeur "3" du code valeur "V" et de la date système valeur style "TODAY" ?
    Merci
    P SAVE

Discussions similaires

  1. Création d'un fichier XML avec SAX et XSLT
    Par Ioan dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 08/03/2011, 18h50
  2. Structurer doc XML avec DOM et PHP (retour à la ligne)
    Par Guillaume_Caldera dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2010, 14h38
  3. Réponses: 23
    Dernier message: 13/02/2009, 12h31
  4. Lien vers un fichier XML avec une feuille XSLT
    Par Raphael_Lemaire dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/10/2008, 23h16
  5. Modification de fichier XML avec XSLT
    Par osmoz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/07/2005, 11h04

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