Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1106 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XML/XSL]génération d'un XML a partir d'un XML par XSL probleme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XML/XSL]génération d'un XML a partir d'un XML par XSL probleme

n°611132
titounne
Posté le 13-01-2004 à 22:02:34  profilanswer
 

bonjour,
 
voila j'ai une mini base de donnée en XML, je veut faire une extraction de cette bdd et la stockée dans un autre fichier XML. Puis a ce nouveau fichier appliquer une feuille de style xsl pour faire une belle presentation.
 
Voila l'extraction se passe sans probleme et j'obtient tout bien le XML que je veut sauf que pour pouvoir appliquer la feuille de style de presentation faudrait que dans ce XML il y ai la ligne qui vas bien... et la catastrophe j'arrive pas a l'inserer... je doit pas mettre la ligne au bon endroit, mais [url]quelque soit l'endroit il me la prend pas en compte dans le fichier XML generé, elle disparait.
 

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">
  3. <xsl:output method="xml" />
  4. <!-- Parametre suivant lesquels on vas effectuer la recherche -->
  5. <xsl:param name='nomRecherche' select="'E'" />
  6. <xsl:template match="/">
  7.  <!-- Feuille de style a apppliquer sur le futur document XML -->
  8.  <!-- <?xml-stylesheet href="presentation_html.xsl" type="text/xsl"?> -->
  9.  <listeReponse>
  10.   <!-- Recherche suivant le nom -->
  11.    <xsl:for-each select="/base/repertoire/fiche[./@nom=$nomRecherche]">
  12.    <xsl:call-template name="sortieFiche"/>
  13.   </xsl:for-each>
  14.  </listeReponse>
  15. </xsl:template>
  16. <xsl:template name="sortieFiche">
  17.  <reponse>
  18.   <fiche nom="{./@nom}" />
  19.  </reponse>
  20. </xsl:template>
  21. </xsl:stylesheet>


 
voila un bout du fichier, si quelqu'un peut m'aider.
 
MErci bcp


---------------
Des images
mood
Publicité
Posté le 13-01-2004 à 22:02:34  profilanswer
 

n°611141
gilou
Modérateur
Modzilla
Posté le 13-01-2004 à 22:17:01  profilanswer
 

En principe ceci doit faire l'affaire:
 

Code :
  1. <xsl:processing-instruction name="xml-stylesheet">
  2. <xsl:text>href="presentation_html.xsl" type="text/xsl"</xsl:text>
  3. </xsl:processing-instruction>


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°611160
titounne
Posté le 13-01-2004 à 22:50:58  profilanswer
 

j'avais bien penser au xsl:text mais ça voulais pas tout seul... alors la si ça marche je te fait tt plein de bisous...  
 
merci bcp


---------------
Des images
n°611165
titounne
Posté le 13-01-2004 à 22:59:43  profilanswer
 

bon ça me met une super erreur... donc je doit pas le mettre au bon endroit  
 
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: xsl:processing-instruction n'est pas admis à cet endroit de la feuille de style


---------------
Des images
n°611229
gilou
Modérateur
Modzilla
Posté le 14-01-2004 à 00:34:37  profilanswer
 

Si tu le met apres le  

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">
  3.   <xsl:output method="xml" />


ca marche pas??
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°611351
titounne
Posté le 14-01-2004 à 08:12:24  profilanswer
 

ben non... je comprend pas... ça me met toujours comme erreur :
xsl: processing-instruction n'est pas admis à cet endroit de la feuille de style !
 
je pense que je vais chercher a contourner en faisant ecrire la ligne par la servlet qui rentre les parametre de recherche, en mettant un parametre dans le XSL et en mettant sa valeur a jour par la servlet... mais bon, c'est casse pieds de pas reussir a faire ce qu'on veut...
 
si jamais tu as une illumination sur pourquoi ça veut pas marcher tant mieux pour moi ;), sinon c'est pas grave.
 
Merci quand meme :)


Message édité par titounne le 14-01-2004 à 08:12:41

---------------
Des images
n°611408
gilou
Modérateur
Modzilla
Posté le 14-01-2004 à 10:19:09  profilanswer
 

Faudrait que j'en sache plus sur ce que tu generes.
Est ce la transfo XML->XML avec ta feuille de style XSL qui genere l'erreur ou est le chargement du fichier XML resultant?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°611751
titounne
Posté le 14-01-2004 à 17:02:54  profilanswer
 

je pense que c'est la génération qui pose problème car si je ne mets pas ces trois lignes tout marche comme il faut : le fichier xml est bien génré mais sans feuille de style... snif !

n°611975
gilou
Modérateur
Modzilla
Posté le 14-01-2004 à 21:48:44  profilanswer
 

J'ai regarde un peu plus avant.
 
Typiquement, un code comme ceci:
 

Code :
  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="xml"/>
  4. <xsl:template match="/">
  5.        <xsl:processing-instruction name="xml-stylesheet">
  6.                       <xsl:text>href="presentation_html.xsl" type="text/xml"</xsl:text>
  7.        </xsl:processing-instruction>
  8.        <xsl:apply-templates/>
  9. </xsl:template>
  10. <xsl:template match="@*|node()">
  11.        <xsl:copy>
  12.        <xsl:apply-templates select="@*|node()"/>
  13.        </xsl:copy>
  14. </xsl:template>
  15. </xsl:stylesheet>


Est correct, et passe OK. C'est un exemple de base qui fait ce que tu cherches [le 2e template est la juste pour faire une recopie sans transformation en sortie... C'est le premier qui a l'effet que tu recherches.]. S'il y a un pb, c'est ailleurs ou c'est un bug d'un des outils de ta chaine de transformation.
 
En testant cela, je me suis rendu compte que le niveau de support de XSLT a regresse entre IE5 et IE6 car j'ai teste ceci:
 

Code :
  1. ================ test.xml =======================================
  2. <?xml version="1.0"?>
  3. <?xml-stylesheet href="test.xsl" type="text/xml" ?>
  4. <Titoune alias="chipie">
  5.   <Title>La Chipie qui faisait du XML</Title>
  6.   <p> XSL l'a tuer.</p>
  7. </Titoune>
  8. ================ test.xsl =======================================
  9. <?xml version="1.0"?>
  10. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  11. <xsl:output method="xml"/>
  12. <xsl:template match="/">
  13.        <xsl:processing-instruction name="xml-stylesheet">
  14.                       <xsl:text>type="text/css" href="style.css"</xsl:text>
  15.        </xsl:processing-instruction>
  16.        <xsl:apply-templates/>
  17. </xsl:template>
  18. <xsl:template match="@*|node()">
  19.        <xsl:copy>
  20.        <xsl:apply-templates select="@*|node()"/>
  21.        </xsl:copy>
  22. </xsl:template>
  23. </xsl:stylesheet>
  24. ================ style.css =======================================
  25. Title {
  26. font-weight: bold;
  27. color: rgb(0,0,255);
  28. }
  29. ==================================================================


 
Code qui marche sous Mozilla et Firebird et a marché sous IE5 il me semble, mais ne marche plus sous IE6... :sarcastic:  
 
Vais finir par abandonner definitivement IE et passer a Firebird, je sens...
A+,


Message édité par gilou le 14-01-2004 à 21:56:09

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°611987
titounne
Posté le 14-01-2004 à 22:04:10  profilanswer
 

oki, merci je regarde ça ce soir et je te tient au courant... de toute façon vas bien falloir que je trouve une soluce a ce probleme..
 
La Chipie qui faisait du XML XSL l'a tuer. trop lol... j'adore :)


---------------
Des images
mood
Publicité
Posté le 14-01-2004 à 22:04:10  profilanswer
 

n°612059
titounne
Posté le 14-01-2004 à 23:39:07  profilanswer
 

bon ben le premier exemple marche (mais la feuille de style ne s'execute pas... autre probleme ça pas eu trop le temps de regarder, j'ai du faire une erreur dans la feuille XSL) par contre quand je met mes templates, la ça marche plus (mais je croit que la ça vient de la servlet...)
XS
et le deusieme, ben ça s'affiche le XML sans appliquer la XSL...
 
ça vient peut etre de IE. Le probleme c'est que ça doit tourner sous IE 6 ce truc.
 
Bon... faut encore que je creuse...


---------------
Des images
n°612344
gilou
Modérateur
Modzilla
Posté le 15-01-2004 à 11:22:56  profilanswer
 

C'est ce que je te disais. Ca marchait dans IE autrefois ce truc, mais on dirait qu'ils ont retiré des fonctionalites de IE6...
Ca marche dans les autres browsers que j'ai teste qui savent afficher du XML.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°612468
titounne
Posté le 15-01-2004 à 13:22:58  profilanswer
 

En tout cas merci de ton aide...
 
Mais faut vraiment que je lme fasse marché sous IE6, vas falloir que je trouve une feinte.
 
Mais vraiment merci de ton aide.
 
edit: touche tab!!!


Message édité par titounne le 15-01-2004 à 13:23:50
n°612713
titounne
Posté le 15-01-2004 à 16:31:51  profilanswer
 

par contre j'ai une eptite question...
 
href="presentation_html.xsl type="text/xml"
 
t'es sur que c'est /xml... je pendais que c'etait /xsl..
de plus auand je met le /xsl le ficher recopié d'affiche bien mais la feuille de style ne s'applique pas, alors que quand je met le /xsl le fichier est visiblement bien généré (quand je regarde la source de la page HTML qui s'affiche je voit bien tt ce qu'il faut) par contre j'ai une erreur qui s'affiche  
"la feuille de styme ne conteitn pas d'elements document. La feuille de style est peut etre vide ou ne constitue pas un document xsl correctement constitué."
 
donc bon c'est que la la feuille de style cherche bien a s'affiché (bon ok j'ai une erreur, je vais trouver pourquoi !!!) donc est /xsl ou /xml????


Message édité par titounne le 15-01-2004 à 16:35:52
n°613027
titounne
Posté le 15-01-2004 à 22:26:35  profilanswer
 

bon ben c'est /xsl... et voila...  
 
Merci bcp bcp bcp pour le temps que tu as pris pour m'aider.


---------------
Des images
n°613142
gilou
Modérateur
Modzilla
Posté le 15-01-2004 à 23:52:37  profilanswer
 

Normalement le xsl est du xml...  :D et j'ai plein de bouquins ou text/xml est considere comme ce qui est a employer./ Mais il se peut que Microsoft ait decide de faire les choses differement :sarcastic:  
A+,


Message édité par gilou le 16-01-2004 à 00:03:38

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XML/XSL]génération d'un XML a partir d'un XML par XSL probleme

 

Sujets relatifs
[action-script / XML] texte dynamique dans flash, parceur XML et posProblème install VirtualTreeView
Probleme de Charset sous Windows et pas sous UnixObtenir une image a partir d'une rotation d'une autre... [RESOLU]
url rewriting --> problème (avec mon serveur).Probleme avec la fct bcdiv()
[Sql] Problème sur croisement de tablesProblême de concept - Comment gerer des catégories ?
probleme avec des classesProblème : Utilisation sous Unix de fichiers écrits sous Windows
Plus de sujets relatifs à : [XML/XSL]génération d'un XML a partir d'un XML par XSL probleme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR