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 xsl WordML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut Conversion xsl WordML
    Bonjour,

    je cherche a crée un fichier .doc à partir d'un fichier xsl d'un fichier xml. Seulement je ne trouve pas le caractere special à inserer dan sle fichier xsl pour generer un retour à la ligne dans word.

    Merci d'avance de votre aide.

  2. #2
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut conversion
    pour plus de precisions,

    je dispose d'un fichier xml que je veut inclure dans un fichier .doc grace à la fonction xslt.Transform(string, string) (en c#).

    Mon probléme est que les caracteres de retour à la ligne compris par le xml ne sont pas les mêmes que ceux compris par le format .doc (en xml j'ai mis \r\n)

    Donc ma question est la suivante : Par quel caractere doit-je replacer le \r\n pour obtenir un retour à la ligne dans word.

    Merci de me repondre, leprojet est urgent et je commence à étre dans le rouge bien comme il faut.

  3. #3
    Membre éclairé Avatar de HebusBreizh
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Est-ce que la balise <w:br /> ne conviendrait pas?

  4. #4
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut
    Je vais essayer, merci

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut et non...
    Malheureusement ça ne marche pas. Comme toutes les autres solutions que j'ai essayé, il m'écrit <w:br /> dans word. Merci quand même de t'étre interessé à mon problème.

  6. #6
    Membre éclairé Avatar de HebusBreizh
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Est-ce que tu pourrais fournir ton code pour qu'on puisse voir de plus près ce qu'il se passe?

    Merci

  7. #7
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut
    coté c# je génére la ligne grace à cette méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xmlWriter.AddNode("Territory",ligneTerritory);
    Territory etant la balise dans laquelle j'insert le texte et ligneTerritory est la string que j'insert dans la balise et qui contient mes retour à la ligne (je peut facilement inserer n'importe quel caractére dans cette string)


    Ensuite un efois que j'ai généré le fichier xml je le transforme en format .doc grace à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                XslTransform xslt = new XslTransform();
     
                xslt.Load(folderTemplates + "VADCONTRACTV3.xsl");
     
                string nomContrat = monContrat.PartnerAddress.CompanyName.Replace ("/","-") + "_" +numeroLigne.ToString () +".doc";
                xslt.Transform(folderContract + NameOfXmlDataNormalised,folderContract +nomContrat);
    voila demande moi si tu veut que j'explique plus le code ou si tu veut que j'en rajoute...

  8. #8
    Membre éclairé Avatar de HebusBreizh
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Il faut que ton document généré ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?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>J'écris sur une ligne</w:t>
            <w:br /> <!--Retour à la ligne-->
            <w:t>Et là je suis en dessous!</w:t>
            <w:br /> <!--un autre retour à la ligne-->
          </w:r>
        </w:p>
      </w:body>
    </w:wordDocument>
    Est-ce que ta structure correspond?

  9. #9
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut
    j'avais effectivement vu quelque cheose comme ça, mais le probleme c'est que je ne génére pas directement le fichier .doc à partir du fichier xml. En fait j'utilise un template xsl que je mouline avec le fichier xml afin d'obtenir le document word. donc mon fichier xml n'a pas cette structure. Mais je peut peut-étre integrer juste une partie de ce qu tu me propose dans une de mes balise.

    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
     
    <Ligne>
        <AuthorizationName>MSD M - Manufacturing</AuthorizationName>
        <DistributorStatus>VAD</DistributorStatus>
        <Territory> <!--je doit mettre mon texte avec les retour à la ligne dans cette balise-->
      <w:body>  
        <w:p>
          <w:r>
            <w:t>J'écris sur une ligne</w:t>
            <w:br /> <!--Retour à la ligne-->
            <w:t>Et là je suis en dessous!</w:t>
            <w:br /> <!--un autre retour à la ligne-->
          </w:r>
        </w:p>
      </w:body>
        </Territory>  
    </Ligne>
    voila quelque chose comme ça...

    dit moi ce que tu en pense, je vais essayer.

  10. #10
    Membre éclairé Avatar de HebusBreizh
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    D'après ce que j'ai compris (corrige moi si je me trompe):
    - tu as tes données dans un fichier xml
    - tu transformes ce document en un document word via un template xsl

    Si c'est bien ça, pourquoi ne fais tu pas ceci dans le xsl:
    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
     
    <xsl:template match="/">
      <w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
        <w:body>
          <w:p>
            <w:r>
              <w:t><xsl:copy-of select="Territory" /></w:t> 
               <!--Tu as mis les balises <w:br/> dans le fichier XML-->
              <w:br/> <!--Retour à la ligne-->
              <w:t>Texte en dessous de Territory</w:t>
              <w:br/> <!--un autre retour à la ligne-->
            </w:r>
          </w:p>
        </w:body>
      </w:wordDocument >
    </xsl:template>
    Cela te générera un document word avec les retour à la ligne où tu le souhaites. (c'est à dire là où tu as décidé de les placer dans ton document XML)

  11. #11
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut
    C'est tout à fait ça.

    Ta solution devrai marcher, en fait j'aurai voulu trouver une autre solution car celle la va me demander pas mal de modif (j'ai un certain nombre de template) mais visiblement y a pas d'autre solution.

    Je te remercie pour ton aide et pour le temps que tu m'a consacré.

  12. #12
    Membre éclairé Avatar de HebusBreizh
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Pour forcer des renvois à la ligne, je vois 2 solutions:
    1. soit tu écris "en dur" les balises dans le fichiers xml
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <Territory>J'écris une ligne<w:br/>Mais ceci est en dessous</Territory>
    2. soit tu coupes ton texte en différentes parties
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      <Territory>
        <ligne>J'écris une ligne</ligne>
        <ligne>Mais ceci est en dessous</ligne>
      </Territory>
      Et dans le xsl, tu insères la balise <w:br/> à chaque tour dans <xsl:for-each>

  13. #13
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Par défaut
    La premiere solution n'est pas possible au vue de la methode que j'utilise pour faire la conversion de la string en xml ( xmlWriter.CloseNode() ) converti automatique le caractéres speciaux tel que < et > en &lg; &mg; donc ça ne marche pas.

    Quand à la deuxieme solution c'est celle que je vais utiliser. Le probléme c'est qu'elle m'oblige à modifier les templates et les fichiers xsd, que j'avais recuperé tout fait, et qu'il y en a un certain nombre.
    Mais au final je pense que c'est la seul solution. Donc ont avaient eu la même idée.

    encore merci pour ton aide

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

Discussions similaires

  1. [PHP] Conversion XML -> PDF avec CSS et sans XSL
    Par k-djo dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/03/2007, 08h27
  2. [xsl-fo] Outils de conversion vers RTF
    Par blastobi dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/05/2006, 10h17
  3. Conversion CSS en XSL
    Par cisse18 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 27/03/2006, 09h19
  4. [FOP] Problème de conversion xml/xsl vers pdf
    Par Shadow aok dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/03/2006, 10h41
  5. [XML][XSL] Un utilitaire de conversion (visuel) ?
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/01/2006, 15h25

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