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
A voir également:

5 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 664
 
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
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
teebo Messages postés 33570 Statut Modérateur 1 793
 
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
sebsauvage Messages postés 33415 Statut Modérateur 15 664
 
Disons que XSL, c'est bien dans la théorie, ou sur de petits exemples.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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