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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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 : 65
    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
    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 578
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 578
    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
    Membre averti
    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 : 65
    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
    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 578
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 578
    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
    Membre averti
    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 : 65
    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
    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 578
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 578
    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

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