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] Office 2007 CUSTOMXML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [XSLT] Office 2007 CUSTOMXML
    Bonjour,


    Je travail sur le format de office 2007 et je tente de parser le fichier XML.
    J ai converti un document Word 2003 avec des Custom XML en Word 2007

    Lorsque office 2007 converti ce fichier toute la structure du document se trouve dans un fichier document.xml et je cherche a recupéré tous les noeuds enfant <w:customXml et les valeur saisie dans dans les balise w:t

    Voila la forme du XML et la structure de w:customxml :

    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
    <w:customXml w:uri="INFOR" w:element="Info">   
    <w:p w:rsidR="00212133" w:rsidRPr="00212133" w:rsidRDefault="00DF632A" w:rsidP="00212133">   
    <w:pPr>  
      <w:jc w:val="right" />    
    <w:rPr>  
      <w:i />    
      <w:sz w:val="16" />    
      <w:szCs w:val="16" />    
      <w:lang w:val="es-ES_tradnl" />    
      </w:rPr>  
      </w:pPr>  
     <w:customXml w:uri="INFOR" w:element="id">   
     <w:r w:rsidR="00212133">   
     <w:rPr>  
      <w:i />    
      <w:sz w:val="16" />    
      <w:szCs w:val="16" />    
      <w:lang w:val="es-ES_tradnl" />    
      </w:rPr>  
    <w:t>Mon</w:t>    </w:r>  
     <w:r w:rsidR="00212133" w:rsidRPr="00F40FF3">   
    <w:rPr>  
      <w:i />    
      <w:sz w:val="16" />    
      <w:szCs w:val="16" />    
      <w:lang w:val="es-ES_tradnl" />    
      </w:rPr>  
      <w:t>Text</w:t>    
      </w:r>  
      </w:customXml>

    Lors de la transformation, Office 2007 m´a diviser le text en 2 noeud enfant
    <w:t>Mon</w:t> et
    <w:t>Text</w:t>

    Voici le XSL que j utilse pour recupérer les valeurs w:t des noeud CustomXml :



    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
    <?xml version="1.0" encoding="UTF-8"?>   
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" exclude-result-prefixes="w">   
        <xsl:template match="w:p | w:r | w:tbl | w:tr | w:tc ">   
            <xsl:apply-templates select="w:customXml | w:p | w:r | w:tbl | w:tr | w:tc"/>   
        </xsl:template>  
        <xsl:template match="w:customXml">   
            <xsl:element name="{@w:element}" namespace="{@w:uri}">   
                <xsl:choose>  
                    <xsl:when test="not(descendant::w:customXml)">   
                        <xsl:value-of select="descendant::w:t"/>   
                    </xsl:when>  
                    <xsl:otherwise>  
                        <xsl:apply-templates select="child::node()"/>   
                    </xsl:otherwise>  
                </xsl:choose>  
            </xsl:element>  
        </xsl:template>  
    </xsl:stylesheet>
    Le XSL y est presque mais le seul hic c ´est quíl ne me retoure que la valeur du premier noeud enfant <w:t>mon</w:t>


    Mon XML de sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Document xmlns="INFOR">   
    <Info>  
      <id>mon</id>  ***** PREMIER NOEUD DU w:t
      <version>11</version>    
      </Info>

    Mais j ai besoin de la concatenation des 2 noeuds

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <Info>  
      <id>Mon Text </id>  ***** node 1 et 2 ... 
      <version>11</version>    
      </Info>
    Si vous avez une idée je suis un peu paumé la ...
    Merci d´avance

    Anto.

  2. #2
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 98
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    Actuellement je travaille sur la manipulation d'un fichier word 2007 via java

    1- Est ce que vous avez une idée sur ce sujet
    2- comment je peux trouver l'xml correspondant à mon fichier word

    Merci

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    C'est là le pb, je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <xsl:when test="not(descendant::w:customXml)">   
                        <xsl:value-of select="descendant::w:t"/>   
                    </xsl:when>
    Faudrait ajouter un for-each ou un apply-templates plutôt sur tous les descendant::w:t et pas juste le premier.

Discussions similaires

  1. [Débat] Office 2007
    Par marabout dans le forum Microsoft Office
    Réponses: 32
    Dernier message: 20/01/2008, 01h48
  2. Microsoft licences office 2007 ribbon UI
    Par Issam dans le forum Windows
    Réponses: 1
    Dernier message: 28/11/2006, 09h25
  3. msdn et office 2007
    Par largowinch dans le forum Microsoft Office
    Réponses: 4
    Dernier message: 17/11/2006, 08h41
  4. Réponses: 8
    Dernier message: 04/10/2006, 10h00

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