XSLT et les prefix

XSLT et les prefix - XML/XSL - Programmation

Marsh Posté le 23-06-2006 à 16:42:51    

Bonjour,  
 
 
J'ai l'intention de transformer des documents OpenOffice en XTHML, donc je recupere le content.xml du document, je l'envoie dans une feuille XSL qui va bien, amsi les resultats que j'obtiens ne sont pas comme je veux du tout...
 
Du coup j'essaye de faire ca sur un plus petit document (je reprend le fichier XML que je vide a la main) et pareil pour la XSL, car je pense que je gere mal les prefix de open Office.
 
Mon fichier XML en entree :

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
  3. xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
  4. xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
  5. xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink"
  6. xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
  7. xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
  8. xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
  9. xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
  10. xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office"
  11. xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events"
  12. xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  13. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0">
  14. <office:body>essais
  15.  <office:text>
  16.   <text:p text:style-name="Standard">This [...] the user.</text:p>
  17.  </office:text>
  18. </office:body>
  19. </office:document-content>


 
Ma feuille XSL que j'ai fais simple au possible :D

Code :
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="http://openoffice.org/2000/office"
  3. xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table"
  4. xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink"
  5. xmlns:svg="http://www.w3.org/2000/svg" xmlns:xhtml="http://www.w3.org/1999/xhtml"
  6. exclude-result-prefixes="office style text table draw fo xlink svg xhtml" >
  7. <xsl:output
  8. method="xml"
  9. version="1.0"
  10. encoding="iso-8859-1"
  11. doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  12. doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
  13. standalone="yes"
  14. indent="yes" />
  15. <xsl:template match="office:document-content">
  16. <p><xsl:value-of select="office:body"/></p>
  17. </xsl:template>
  18. </xsl:stylesheet>


 
Mon resultat : (obtenu avec xalan)

Code :
  1. <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
  2.         essais
  3.                         This package provide,[...]the user.
  4. '


 
Et donc la, on peut voir que les balises <p> ne sont pas la !
Pourquoi donc je ne comprend pas ?  :??:  
 
Merci  :jap:


Message édité par zapan666 le 23-06-2006 à 17:55:29

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 23-06-2006 à 16:42:51   

Reply

Marsh Posté le 23-06-2006 à 17:29:09    

Bon, je viens de faire une petite modif sur mon fichier xml :
 
J'ai remplace

Code :
  1. <text:p>This package provide,</text:p>


par
 

Code :
  1. <text>This package provide,</text>


(j'ai aussi mis a jour ma XSLT)
 
et la, ca marche plus ou moins comme je veux.
 
Le truc c'est que sur tous les exemples de XSLT pour open Office, ils utilisent le prefix dans les templates !  
 
Comment ca se fait donc que les prefix de Open Office ne sont pas (bien) pris en compte ?


Message édité par zapan666 le 23-06-2006 à 17:55:50

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 24-06-2006 à 01:36:40    

Bon, j'ai trouvé.
 
 
Dans le fichier XML et XSLT, les namespaces n'étaient pas pareil.
 
Le truc, c'est que je suis parti d'une feuille XSLT de Open Office [:petrus75]
 
Donc pour que ça marche, j'ai pris les déclarations des namespaces du xml (xmlns:style, etc) et zou, dans le XSLT


---------------
my flick r - Just Tab it !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed