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][OpenOffice] Problème filtre d'export XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut [XSLT][OpenOffice] Problème filtre d'export XML
    Bonjour,

    Dans le cadre du projet décrit dans ce thread, j'ai réalisé un filtre d'export XML OpenOffice basé sur le format odt.

    Voici ma feuille de style de transformation :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
      xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
      xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
      xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
      xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
      xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
      xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
      xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
      xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
      exclude-result-prefixes="text xsl fo office style table draw xlink form script config number svg">
    <xsl:output method="xml" indent="yes" encoding="UTF-8" version="1.0" standalone="yes"/>
     
    <xsl:template match="/">
        <xsl:apply-templates select="office:document/office:body/office:text/text:h"/>
    </xsl:template>
     
    <xsl:template match="text:h">
       <xsl:value-of select="."/>
    </xsl:template>
     
     
    </xsl:stylesheet>
    Je me suis basé sur une feuille XSL livrée de base avec OOo 2.0 (la WordML) pour construire celle-ci. Or, au moment d'exporter un document via fichier=>enregistrer sous à mon format, OOo me sort une erreur : "Error saving the document Untitled1 : Write error. The file could not be written".

    Quoi que je mette dans la feuille de style, ce problème se reproduit. Par contre quand j'exporte avec la feuille de style WordML qui a le même genre de syntaxe en plus complexe, tout marche parfaitement.

    Quelqu'un peut-il éclairer ma lanterne :

    Merci d'avance...
    Pensez au bouton

  2. #2
    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
    Bonjour,

    telle qu'elle est constituée, ta feuille de style créé une sortie XML sans éléments ; pour faire tes tests, fais plutôt un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    <xsl:template match="/"> 
      <document>
        <xsl:apply-templates select="office:document/office:body/office:text/text:h"/> 
      </document>
    </xsl:template> 
     
    <xsl:template match="text:h"> 
      <paragraphe>
       <xsl:value-of select="."/> 
      </paragraphe>
    </xsl:template>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par GrandFather
    Bonjour,

    telle qu'elle est constituée, ta feuille de style créé une sortie XML sans éléments
    Oui, j'ai mis ma dernière tentative mais avant j'avais essayé de faire un document plus structuré comme celui que tu as posté. Ca ne fonctionne pas.

    Je vais essayer de faire la transformation à la mano à partir du .odt pour voir si ça marche...
    Pensez au bouton

  4. #4
    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
    Le problème avec les filtres XML de OOo est qu'ils ne renvoient pas le message d'erreur du processeur XSLT, ce qui ne facilite pas le deboguage...

    Il existe quand même une possibilité d'obtenir des informations de déboguage dans un fichier trace : dans la boîte de dialogue Options/Java, place la variable d'environnement suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -DXSLTransformer.statsfile=<PATH_DE_TON_FICHIER_TRACE>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Je viens d'ajouter ce paramètre et ça fonctionne tout d'un coup !
    Contenu du fichier trace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    starting transformation...
    finished transformation in 125ms
    C'est à n'y rien comprendre

    Merci en tout cas
    Pensez au bouton

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 114
    Points : 60
    Points
    60
    Par défaut
    Bonjour

    J'ai le même probleme 8 ans après !

    J'ai créé un simple document odt avec writer dont voici le content.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
    50
    51
    52
    53
    54
    <?xml version="1.0" encoding="UTF-8"?>
    <office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
        xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
        xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
        xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
        xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
        xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
        xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
        xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
        xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
        xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
        xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
        xmlns:math="http://www.w3.org/1998/Math/MathML"
        xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
        xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
        xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer"
        xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events"
        xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:rpt="http://openoffice.org/2005/report"
        xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
        xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#"
        xmlns:tableooo="http://openoffice.org/2009/table"
        xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
        office:version="1.2"
        grddl:transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl">
        <office:scripts/>
        <office:font-face-decls>
            <style:font-face style:name="Mangal1" svg:font-family="Mangal"/>
            <style:font-face style:name="Times New Roman" svg:font-family="&apos;Times New Roman&apos;"
                style:font-family-generic="roman" style:font-pitch="variable"/>
            <style:font-face style:name="Arial" svg:font-family="Arial"
                style:font-family-generic="swiss" style:font-pitch="variable"/>
            <style:font-face style:name="Mangal" svg:font-family="Mangal"
                style:font-family-generic="system" style:font-pitch="variable"/>
            <style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;"
                style:font-family-generic="system" style:font-pitch="variable"/>
            <style:font-face style:name="SimSun" svg:font-family="SimSun"
                style:font-family-generic="system" style:font-pitch="variable"/>
        </office:font-face-decls>
        <office:automatic-styles/>
        <office:body>
            <office:text>
                <text:sequence-decls>
                    <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
                    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
                    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
                    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
                </text:sequence-decls>
                 <text:h text:style-name="P1" text:outline-level="1">Titre</text:h>
            </office:text>
        </office:body>
    </office:document-content>
    Voici la transformation
    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" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
        xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
        xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
        xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
        xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
        xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
        xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
        xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
        xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0">
        <xsl:output method="xml" indent="yes" encoding="UTF-8" version="1.0" standalone="yes"/>
     
        <xsl:template match="/">
            <document>
            <xsl:apply-templates select="office:document/office:body/office:text/text:h"/>
            <xsl:apply-templates select="//text:h"/>
            </document>
        </xsl:template>
     
        <xsl:template match="text:h">
            <paragraphe>
                <xsl:value-of select="."/>
            </paragraphe>
        </xsl:template>
    </xsl:stylesheet>
    Avec la première expression xPath
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             <xsl:apply-templates select="office:document/office:body office:text/text:h"/>
    Je n'arrive pas d'atteindre le nœud <text:h>

    Alors que la deuxième expression xPath
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             <xsl:apply-templates select="//text:h"/>
    arrive bien a afficher le Titre

    Quelqu'un aurait'il une explication et une solution pour atteindre directement les nœuds dans un openDocument

    J'utilise Saxon6.5.5 ou Xalan avec oXygen XML Editor

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    D'après l'exemple que tu montres, c'est office:document-content et non pas office:document
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 114
    Points : 60
    Points
    60
    Par défaut
    Merci

    Parfois il y a de la fatigue !!!

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

Discussions similaires

  1. [DisplayTag] Problème export XML
    Par Shiggurath dans le forum Taglibs
    Réponses: 2
    Dernier message: 07/07/2011, 12h50
  2. [OpenOffice] [OOo] Changer dynamiquement le chemin du fichier XSLT d'un filtre XML ?
    Par ludo00002 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 18/03/2009, 18h19
  3. [XSLT] export XML vers texte plat sans délimiteur
    Par juanito003 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/11/2007, 17h05
  4. [XML][XSLT] Débutant {Probléme avec For-each-group}
    Par Silvia12 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/01/2006, 21h38
  5. [XSLT][sablotron]Problème de parser XML
    Par sheura dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/11/2005, 17h39

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