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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Ou est le probleme avec ce bout de XSL ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ou est le probleme avec ce bout de XSL ?

n°715469
Gonzoide
Les cochons... dans l'espâââce
Posté le 04-05-2004 à 18:42:24  profilanswer
 

Grace a une feuille XSL, je cherche a transformer du XML en HTML, qui aura une forme de table avec une colonne "label" et une colonne "donnee".  
 
Pour faire les choses proprement, j'ai cree un template "item" a qui je passe je lui passe mon label et ma valeur, et lui se charge de creer les <TR>, <TD>, etc. Un appel a "item" ressemble donc a :
 

Code :
  1. <xsl:call-template name="item">
  2. <xsl:with-param name="name" select="'Compte CLient"/>
  3. <xsl:with-param name="value"><xsl:attribute name="select">'<xsl:value-of select="Account/Id"/> - <xsl:value-of select="Account/Description"/>'</xsl:attribute></xsl:with-param>
  4. </xsl:call-template>


 
Xalan se plaint que l'attribut "select" a un attribut illegal (en rouge dans l'exemple qui precede) ... quelqu'un aurait une idee ?
 

Code :
  1. SystemId Unknown; Line 102; Column 59; select has an illegal attribute: {1}


 
EDIT : merde le rouge marche pas :(


Message édité par Gonzoide le 04-05-2004 à 18:42:56
mood
Publicité
Posté le 04-05-2004 à 18:42:24  profilanswer
 

n°715828
swgreedo
Posté le 05-05-2004 à 09:53:55  profilanswer
 

As tu essayé sans apostrophe dans l'attribut select de ton premier <xsl:with-param> ou en placant la valeur "'Compte CLient" comme texte dans cet élément au lieu de le mettre en attribut ?

Code :
  1. <xsl:with-param name="name">'Compte CLient</xsl:with-param>


n°715928
Gonzoide
Les cochons... dans l'espâââce
Posté le 05-05-2004 à 11:00:38  profilanswer
 

swgreedo a écrit :

As tu essayé 1) sans apostrophe dans l'attribut select de ton premier <xsl:with-param> ou 2) en placant la valeur "'Compte CLient" comme texte dans cet élément au lieu de le mettre en attribut ?

Code :
  1. <xsl:with-param name="name">'Compte CLient</xsl:with-param>




 
1) Oui, au depart c'etait meme sans apostrophe ... je pensais meme que le probleme venait de la, puisque si tu resous l'attribute ca se transforme en un parametre "value" qui vaut "123456 - compte client" par exemple, ce qui est interdit (il faut de apostrophes pour signaler que c'est bien une chaine, et pas un noeud)
 
2) Ben d'apres le numero et ligne et de colonne, c'est vraiment le :

Code :
  1. <xsl:value-of select="Account/Id"/> - <xsl:value-of select="Account/Description"/>

qui lui pose probleme, donc j'ai pas change le premier param (au passage il manque une apostrophe dans "'Compte CLient", mais c'est juste une typo de recopie quand j'ai change les noms des champs pour poster). Mes deux noeuds "Account/Id" et "Account/Description" sont valides.


Message édité par Gonzoide le 05-05-2004 à 11:01:48
n°715945
swgreedo
Posté le 05-05-2004 à 11:13:38  profilanswer
 

Ah ben là je ne vois pas   :(

n°717140
alien_nan
Posté le 06-05-2004 à 11:27:43  profilanswer
 

swgreedo a écrit :

Ah ben là je ne vois pas   :(


 
essaie de changer les noms de tes param. Je ne pense pas qu'il soit conseillé d'appeller une variable par le nom d'une fonction (en l'occurence, name).
 

n°717202
Gonzoide
Les cochons... dans l'espâââce
Posté le 06-05-2004 à 12:20:50  profilanswer
 

alien_nan a écrit :

essaie de changer les noms de tes param. Je ne pense pas qu'il soit conseillé d'appeller une variable par le nom d'une fonction (en l'occurence, name).


 
Ben je vais esssayer a tout hasard, meme si j'y crois pas trop (quand le parametre "value" est initialise de maniere simple, ca marche)

n°717296
alien_nan
Posté le 06-05-2004 à 14:19:48  profilanswer
 

Gonzoide a écrit :

Ben je vais esssayer a tout hasard, meme si j'y crois pas trop (quand le parametre "value" est initialise de maniere simple, ca marche)


 
as tu essayé de remplacer le - par & # 4 5 ;  ?
quel est l'encoding de ton fichier ?
 
ps : edit c chiant, il transforme en - le code ...


Message édité par alien_nan le 06-05-2004 à 14:21:46
n°717335
Gonzoide
Les cochons... dans l'espâââce
Posté le 06-05-2004 à 14:44:07  profilanswer
 

A priori en changeant une construction du type :  

Code :
  1. <xsl:with-param name="value">
  2.   <xsl:attribute name="select'<xsl:value-of select="Account/Id"/> - <xsl:value-of select="Account/Description"/></xsl:attribute>
  3. </xsl:with-param>


 
en directement :

Code :
  1. <xsl:with-param name="value"><xsl:value-of select="Account/Id"/> - <xsl:value-of select="Account/Description"/></xsl:with-param>


 
ca a l'air de marcher (en gros, on vire l'attribut "select" de "with-param".
 
Par contre, maintenant ca merde plus loin ... le bout de code suivant pète avec le message d'erreur 'Value of attribute name cannot contain '<', alors que ca me semble tout a fait legal. Le plus drôle c'est que ca marchait pile-poil avant.

Code :
  1. <xsl:attribute name="name">index<xsl:value-of select="position()"/></xsl:attribute>


Message édité par Gonzoide le 06-05-2004 à 14:45:13
n°717343
pascal34
one point !
Posté le 06-05-2004 à 14:52:02  profilanswer
 

C'est normal, le contenu texte de xsl:attibute est pris comme la valeur brut de l'attribut. Un peu comme xsl:text


Message édité par pascal34 le 06-05-2004 à 14:54:18
n°718008
Gonzoide
Les cochons... dans l'espâââce
Posté le 06-05-2004 à 22:53:27  profilanswer
 

pascal34 a écrit :

C'est normal, le contenu texte de xsl:attibute est pris comme la valeur brut de l'attribut. Un peu comme xsl:text


 
Ben avant que je commence a faire mes essais avec  mes xsl:with-param, les xsl:attributes marchaient pile-poil :??:
 
Pis t'es sur de ton coup ? Parce que a part ce que j'ai fait, comment passer des attibuts complexes ?  
 

mood
Publicité
Posté le 06-05-2004 à 22:53:27  profilanswer
 

n°718421
pascal34
one point !
Posté le 07-05-2004 à 11:42:19  profilanswer
 

Code :
  1. <xsl:with-param name="[nom param]">
  2. <xsl:value-of select="[un simple valeur texte ou un nodeset]"/>
  3. </xsl:with-param>


 
les xsl:attribute c'est pour ajouter un nouvel attribut à l'élément en cours de traitement dans un template.


Message édité par pascal34 le 07-05-2004 à 11:50:48
n°718501
Gonzoide
Les cochons... dans l'espâââce
Posté le 07-05-2004 à 12:35:37  profilanswer
 

pascal34 a écrit :

Code :
  1. <xsl:with-param name="[nom param]">
  2. <xsl:value-of select="[un simple valeur texte ou un nodeset]"/>
  3. </xsl:with-param>


 
les xsl:attribute c'est pour ajouter un nouvel attribut à l'élément en cours de traitement dans un template.


 
Ben c'est bizarre, parce que des structures du genre:

Code :
  1. <xsl:with-param name="[nom param]">
  2. du_textexsl:value-of select="[un simple valeur texte ou un nodeset]"/>du_texte<xsl:value-of select="[un simple valeur texte ou un nodeset]"/>
  3. </xsl:with-param>


ca fonctionne chez moi ...


Message édité par Gonzoide le 07-05-2004 à 12:36:05
n°718633
pascal34
one point !
Posté le 07-05-2004 à 13:44:49  profilanswer
 

Gonzoide a écrit :

Ben c'est bizarre, parce que des structures du genre:

Code :
  1. <xsl:with-param name="[nom param]">
  2. du_textexsl:value-of select="[un simple valeur texte ou un nodeset]"/>du_texte<xsl:value-of select="[un simple valeur texte ou un nodeset]"/>
  3. </xsl:with-param>


ca fonctionne chez moi ...


 
Oui, car tu inclues du texte dans le xsl:param. Pas un xsl:attribute

n°718948
Gonzoide
Les cochons... dans l'espâââce
Posté le 07-05-2004 à 16:26:18  profilanswer
 

pascal34 a écrit :

Oui, car tu inclues du texte dans le xsl:param. Pas un xsl:attribute


 
Je confirme qu'on a le droit de le faire dans un attribute (ca marche dans d'autres XSL), c'est meme la raison d'etre de ce noeud ...


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

  Ou est le probleme avec ce bout de XSL ?

 

Sujets relatifs
Problème avec les indexMySQL: problème avec une requête multitable
probleme de creation d un compte sous sql serveru via phpprobleme pour creer des compte sql via php
Probléme mediaProblème d'utilisation de PEAR::DB
petit probleme de recursivitéprobleme de declaration de variable
Probleme d'utilisation des variables je crois (PHP + SVG)[C] problème de pointeur
Plus de sujets relatifs à : Ou est le probleme avec ce bout de XSL ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)