XML->TXT:AIDEZ MOI SVP

ruth -  
 azteka -
Bonjour à tous,
svp je souhaite transformer un document du XML vers TXT.
voici le format de données XML:
<Listeproduits>
<produit>
DER1

<Prix>345</Prix>
<promo1>340</promo1>
<promo2>340</promo2>
<promo3>340</promo3>
</produit>
<produit>
DER1

<Prix>3452</Prix>
<promo1>3403</promo1>
<promo2>3404</promo2>
<promo3>3403</promo3>
<produit>
DER2

<Prix>32</Prix>
<promo1>34403</promo1>
<promo2>2404</promo2>
<promo3>5403</promo3>
</produit>
</Listeproduits>

je souhaite concevoir un fichier XSL pour transformer le fichier produit.xml en
produit.txt dont le format de données est:

DER1;345;340;340;340
DER1;3452;3403;3404;3403
DER2;32;34403;2404;5403

Remarque:possibilité de doublons.
SVP auriez vous une idée sur ce fichier xsl?
merci
Configuration: Windows ,XML

5 réponses

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    XSL ?

    Pouark !

    Tu ne peux vraiment pas prendre autrechose ?

    XLS est lourd à écrire, et les performances sont minables.

    Mais bon si tu veux un exemple d'XSL, regarde là:
    http://sebsauvage.net/comprendre/xml/index.html#xslt

    Je veux bien de le faire en Python, mais pas en XSL.
    0
  2. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    (une réponse pour ruth)
    Une solution qui fonctionne avec xsltproc :
    <?xml version="1.0" encoding="iso-8859-1" ?>                                    <xsl:stylesheet                                                                 
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"                                version="1.0"                                                                   >                                                                           <xsl:output encoding="iso-8859-1" method="text"/>                               <xsl:strip-space elements="*"/>
    
    <xsl:template match="produit">
        <!-- là on supprime tous les espaces inutiles -->
        <xsl:value-of select="normalize-space(text())"/>
        <!-- là on affiche les valeurs des noeuds prix et et promo -->
        <xsl:text>;</xsl:text><xsl:value-of select="Prix"/>
        <xsl:text>;</xsl:text><xsl:value-of select="promo1"/>
        <xsl:text>;</xsl:text><xsl:value-of select="promo2"/>
        <xsl:text>;</xsl:text><xsl:value-of select="promo3"/>
        <!-- il est important de ne pas indenter la balise fermante... -->
        <xsl:text>
    </xsl:text>
    </xsl:template>
    
    </xsl:stylesheet>
    


    Ton XML n'est pas pratique, essaies de mettre le nom du produit dans un
    élément ou un attribut, cela sera plus facile à manipuler qu'un 'text'
    mélangé à des noeuds.

    A+, crabs
    0
  3. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Salut :)

    Seb, t'exagère, XSL peut parfois être lourd à écrire (mais dans le cas particulier, c'est franchement facile), et les performances dépendent surtout du processor et du parser :)

    0
  4. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Disons que XSL, c'est bien dans la théorie, ou sur de petits exemples.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. azteka
     
    Bonjour j'ai moi auss la nécéssité pour la traduction d'un film de convertir un fichier xml créé par fcp pour un .txt qui servirait dans le logiciel dvd studio pro.Je vous remercie
    0