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 :

[XSLT]Xml to Wordml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut [XSLT]Xml to Wordml
    Bonjours voilà j'expose mon problème j'ai un fichier Xml créer via VB et je dois appliquer à ce fichier une feuille de style pour que chaque Contact dans mon fichier Xml apparait dans un tableau d'un document word
    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
    <?xml version="1.0" standalone="yes"?>
    <dscontact xmlns="http://tempuri.org/dscontact.xsd">
      <Contact>
        <ID>4acc93c1-de30-4477-a0d2-d731a817a9e2</ID>
        <Nom>Ghesquière</Nom>
        <Prenom>Geoffrey</Prenom>
        <Adresse>Rue Matt</Adresse>
        <CodePostal>7700</CodePostal>
        <Ville>Mouscron</Ville>
      </Contact>
      <Contact>
        <ID>fe9c3c1d-a30a-467d-8b88-b312e07d70ad</ID>
        <Nom>Del</Nom>
        <Prenom>Yo</Prenom>
        <Adresse>Rue ici</Adresse>
        <CodePostal>7500</CodePostal>
        <Ville>Tournai</Ville>
      </Contact>
      <Contact>
        <ID>a4898b3e-c4d5-4bee-bb64-8b5fa3b669c2</ID>
        <Nom>toto</Nom>
        <Prenom>tototttt</Prenom>
        <Adresse>Rue des TOTO</Adresse>
        <CodePostal>7777</CodePostal>
        <Ville>TOTOLOAND</Ville>
      </Contact>
    </dscontact>
    Quel serais le code de la feuille de style pour avoir sur chaque ligne d'un tableau avec le Contact et tout ces champs sous word

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    il faudrait que tu détermines la feuille xml ou text que tu souhaites obtenir pour qu'on puisse écrire une feuille de style

  3. #3
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Du style tableau de 2 colonnes et 5 lignes sur une feuille word avec chaque contact pour chaque cellule du tableau donc 10 contacts par feuille

    Merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    un petit up

    Merci

  5. #5
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par screamy145
    un petit up

    Merci
    On peut savoir quel est le code que tu as écrit et qui ne fonctionne pas ? Ou alors c'est que tu n'as pas avancé d'un pouce depuis 15 jours...

  6. #6
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Au fait tout est bien créer mais il ne passe pas dans ma boucle (for-each)

    L'exemple ici est pris avec une liste de CD dont voilà la structure xml

    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
     
    <catalog>
       <cd>
           <title></title>
           <artist></artist>
       </cd>
       <cd>
           <title></title>
           <artist></artist>
       </cd>
       <cd>
           <title></title>
           <artist></artist>
       </cd>
    </catalog>
    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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">	
     
    <xsl:template match="/">
     
     
    <w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
      <w:body>
     
    	<!-- Paragraphe -->
     
        <w:p>
    		<w:r>
    			<w:t>Mon tableau</w:t>
    		</w:r>
    	</w:p>
     
     
    	<!-- Creation d'un tableau 2 colonnes et 2 lignes -->
    	<w:tbl>
     
     
    	<w:tblPr>
    	<w:tblStyle w:val="Grilledutableau"/>
    	<w:tblW w:w="0" w:type="auto"/>
    	<w:tblLook w:val="01E0"/>
    	</w:tblPr>
     
     
    	<w:tblGrid>
    	<w:gridCol w:w="2952"/>
    	<w:gridCol w:w="2952"/>
    	</w:tblGrid>
     
    	<xsl:for-each select="catalog/cd">
     
    	<w:tr>
    		<w:tc>
    			<w:tcPr>
    				<w:tcW w:w="2952" w:type="dxa"/>
    			</w:tcPr>
    			<w:p>
    				<w:r>
    					<w:t> <xsl:value-of select="title"/> </w:t>
    				</w:r>
    			</w:p>
    		</w:tc>
     
    		<w:tc>
    			<w:tcPr>
    				<w:tcW w:w="2952" w:type="dxa"/>
    			</w:tcPr>
    			<w:p>
    				<w:r>
    					<w:t> <xsl:value-of select="artist"/> </w:t>
    				</w:r>
    			</w:p>
    		</w:tc>
    	</w:tr>
     
    	</xsl:for-each>
     
    	</w:tbl>
     
      </w:body>
    </w:wordDocument>
     
    </xsl:template>
     
    </xsl:stylesheet>
    Merci

  7. #7
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Essaye encore une fois ca marche très bien ton xsl et en plus sa s'ouvre sans erreur dans Word?????

  8. #8
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Voilà le code que j'utilise en VB pour appliquer ma feuille de style à mon xml

    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
     
     Private Sub WordMLButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WordMLButton.Click
            Dim dstest As New DataSet
            dstest.ReadXml("cd.xml")
     
            'On crée le fichier texte sur base d'un fichier xml avec une feuille de style xsl
            Dim test1 As String = GetTXTFile(dstest, "temp.txt", "Copy of cdStyleSheet.xsl")
     
            'On va lire le fichier résultat de la transformation xml xsl
            Dim fichiertxt As String = My.Computer.FileSystem.ReadAllText("temp.txt")
            My.Computer.FileSystem.DeleteFile("temp.txt")
            Dim textetmp As String = ""
     
            'On ajoute l'en-tête du document pour que celui ci soit reconnu comme un wordml
            textetmp = "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?><?mso-application progid=""Word.Document""?>"
            textetmp += fichiertxt
     
            'On crée le fichier final wordml et on met le boolean à false pour qu'il écrive au dessus si le fichier est déjà présent
            My.Computer.FileSystem.WriteAllText("OutPut.xml", textetmp, False)
     
            'On vide le string texte temporaire si on refait le fichier pour qu'il soit neuf et non un doublon
            textetmp = ""
     
            'On ouvre le fichier créé
            System.Diagnostics.Process.Start("Output.xml")
        End Sub
     
    Function GetTXTFile(ByVal DataToOuput As DataSet, ByVal OutputFileName As String, ByVal XSLModel As String) As String
            Dim retval As String = OutputFileName
     
     
            Dim ds As New DataSet("Resultat")
     
            For Each dt As DataTable In DataToOuput.Tables
                ds.Tables.Add(dt.Copy)
            Next
     
            Dim xmlDoc As XmlDataDocument = New XmlDataDocument(ds)
            Dim xslTran As System.Xml.Xsl.XslCompiledTransform = New System.Xml.Xsl.XslCompiledTransform
            xslTran.Load(XSLModel)
     
            Dim writer As XmlTextWriter = New XmlTextWriter( _
              retval, System.Text.Encoding.UTF8)
     
            xslTran.Transform(xmlDoc, Nothing, writer)
            writer.Close()
     
            Return retval
        End Function

    Ce code m'ouvre un document wordml mais dedans j'ai que Mon tableau et il n'as pas passer dans ma boucle xls

    Merci de votre aide

  9. #9
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Euh c'est du Vb pas du xml non?

    Désolé mais c'est pas ici que ca se passe...

    C'est ici:

    http://www.developpez.net/forums/forumdisplay.php?f=28

    Merci

  10. #10
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Oui merci....

    C'est parce que mon programme génére un fichier xml automatique et à celui çi je veux lui appliquer ma feuille de style pour obtenir avec cette association un fichier du style xxx.xml (mais ce fichier là est wordml) une sorte de fichier résultant

    Merci

  11. #11
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Voilà j'ai encore un petit souci j'ai mon fichier xml qui est créer

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
      <w:body>
        <w:p>
          <w:r>
            <w:t>Mon tableau</w:t>
          </w:r>
        </w:p>
        <w:tbl>
          <w:tblPr>
            <w:tblStyle w:val="Grilledutableau" />
            <w:tblW w:w="0" w:type="auto" />
            <w:tblLook w:val="01E0" />
          </w:tblPr>
          <w:tblGrid>
            <w:gridCol w:w="2952" />
            <w:gridCol w:w="2952" />
          </w:tblGrid>
          <w:tr>
            <w:tc>
              <w:tcPr>
                <w:tcW w:w="2952" w:type="dxa" />
              </w:tcPr>
              <w:p>
                <w:r>
                  <w:t>Empire Burlesque</w:t>
                </w:r>
              </w:p>
            </w:tc>
            <w:tc>
              <w:tcPr>
                <w:tcW w:w="2952" w:type="dxa" />
              </w:tcPr>
              <w:p>
                <w:r>
                  <w:t>Bob Dylan</w:t>
                </w:r>
              </w:p>
            </w:tc>
          </w:tr>
          <w:tr>
            <w:tc>
              <w:tcPr>
                <w:tcW w:w="2952" w:type="dxa" />
              </w:tcPr>
              <w:p>
                <w:r>
                  <w:t>Unchain my heart</w:t>
                </w:r>
              </w:p>
            </w:tc>
            <w:tc>
              <w:tcPr>
                <w:tcW w:w="2952" w:type="dxa" />
              </w:tcPr>
              <w:p>
                <w:r>
                  <w:t>Joe Cocker</w:t>
                </w:r>
              </w:p>
            </w:tc>
          </w:tr>
        </w:tbl>
      </w:body>
    </w:wordDocument>
    Mais il me manque ce noeud là : <?mso-application progid="Word.Document"?>
    juste après <?xml version="1.0" encoding="utf-8"?>
    Pour que le document xml est détecter comme Wordml

    Comment faire pour ajouter ce noeud

    merci d'avance

  12. #12
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Encore une fois je ne connais pas le VB mais ce que tu veux insérer se sont le processing-instruction (PIA) si tu fait une recherche ave ca tu devrais trouver comment faire.

    Mais si tu ne veux pas te casser la nénette sauve le directement en .doc et pas en .xml et tu n'auras plus ce problème.

    ++

    Thierry

  13. #13
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci pour toute ton aide.....

    @++++

  14. #14
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Bonjours et oui je suis de retour là

    j'aimerais me faire une boucle qui compte de 0 à 3 c'est pour créer un tableau de 3 colonnes puis dès qu'il arrive au nombre 3 il passe à la ligne suivante et il recommence à compte à 0 jusque 3 ainsi de suite...


    du style:
    var1=0
    var2=3

    do{
    ...
    ...
    ...}while(var1<var2)

    Merci

  15. #15
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    C'est bien en XSLT que tu veux faire ca ?

    Si oui il faut que tu utilise position() qui t'indiquera a quelle position tu est et a l'aide d'un modulo (%) tu teste si ton nombre est un multiple de 3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="position() mod 3 = 0">
    ++

    Thierry

  16. #16
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci

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

Discussions similaires

  1. [XSLT] XML->XML conversion attributs en balises
    Par ¤ Actarus ¤ dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/07/2005, 09h51
  2. [XSLT] xml plat à xml arborescent
    Par enigma dans le forum XSL/XSLT/XPATH
    Réponses: 24
    Dernier message: 24/06/2005, 22h43
  3. [XSLT] [XML->HTML] transformation XML -> HTML via XSL
    Par Great Sayaman dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/12/2004, 22h12
  4. [XSLT] XML vers XML
    Par ren0 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/10/2004, 12h54
  5. [XSLT] XML et PHP
    Par Dam'$ dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 05/08/2004, 15h14

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