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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XSL] Chuis complètement con ou quoi ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XSL] Chuis complètement con ou quoi ?

n°1401729
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2006 à 10:17:33  profilanswer
 

Moteur XSL de OC4J (Oracle)
 
Pour simplifier, j'ai un bloc XML de la forme :
 


<rows>
    <row><total>1</total><val>1</val></row>
    <row><total>11</total><val>10</val></row>
    <row><total>16</total><val>5</val></row>
</rows>


 
Le but du jeu, c'est de passer en rouge dans un tableau la première ligne dont "total" dépasse 10.
 
Bêtement, j'ai fait ce test (à l'intérieur d'un for-each qui porte sur rows/row)
 


<xsl:if test="total &gt= 10 and ../row[position() - 1]/total &lt; 10">


 
Marche pas.
 
Je me lance donc dans le debug.
 


<xsl:value-of select="../row[1]/total"/> - <xsl:value-of select="../row[2]/total"/> - <xsl:value-of select="../row[3]/total"/>
J'ai ça en sortie :
1 - 11 - 16
 
<xsl:value-of select="position()"/> - <xsl:value-of select="../row[position()]/total"/>
J'ai ça en sortie :
1 - 1
2 - 1
3 - 1
 
<xsl:variable name="position">
 <xsl:value-of select="position()"/>
</xsl:variable>
<xsl:value-of select="$position"/> - <xsl:value-of select="../row[$position]/total"/>
J'ai ça en sortie :
1 - 1
2 - 1
3 - 1


 
Alors, que "position()" se mette à prendre le "position()" de mon "rows" quand je l'utilise dans un appel de ligne de collection, je veux bien à la limite... Mais là, même en variable, il se comporte de la sorte.
Du coup, je suis comme un con, je récupère comment le noeud précédent pour comparer la valeur ?

mood
Publicité
Posté le 06-07-2006 à 10:17:33  profilanswer
 

n°1401733
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2006 à 10:21:50  profilanswer
 

Y se fout de moi ce truc ou quoi ? :fou:
 
Je viens d'ajouter un attribut "index" à mes row. Autoincrément, c'est un compteur basique.
 


<xsl:value-of select="@index"/> - <xsl:value-of select="../row[@index]/total"/>
Sortie :
1 - 1
2 - 1
3 - 1


Message édité par Arjuna le 06-07-2006 à 10:25:49
n°1401755
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2006 à 10:38:29  profilanswer
 

PS: vous avez le droit de répondre "oui" à ma question, en me fumant avec une réponse aussi évidente que mon erreur. Je préfère m'auto-proclamer con en public que de rester bloquer comme ça depuis plus d'une heure en me disant que chuis trop con de pas trouver ce qui cloche :sweat: En tout cas, ça me gave. Vais aller me pendre dans un coin tiens :/


Message édité par Arjuna le 06-07-2006 à 10:39:15
n°1401771
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2006 à 10:57:59  profilanswer
 

:sweat: le cable réseau était pas bien accroché, j'ai pas réussi

n°1401773
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2006 à 11:00:29  profilanswer
 

Lui non plus, il n'a aucun succès avec ses fromages...
http://www.trucsweb.com/Forum/voir [...] osparent=0

n°1401775
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2006 à 11:03:47  profilanswer
 
n°1401789
zapan666
Tout est relatif
Posté le 06-07-2006 à 11:23:26  profilanswer
 

Arjuna a écrit :



<xsl:if test="total &gt= 10 and ../row[position() - 1]/total &lt; 10">




 

Code :
  1. <xsl:if test="total &gt= 10 and preceding-sibling()/total &lt; 10">

?


---------------
my flick r - Just Tab it !
n°1401814
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-07-2006 à 11:34:26  profilanswer
 

Groumpf !
 
Bon, j'ai trouvé une solution.
 
Alors déjà, première connerie :
 
Contrairement à ce que j'ai dit, je faisais pas un "for-each", mais un "apply-templates" sur les row.
Résultat, en effet, moins évident de retrouver la ligne précédente.
 
Ensuite, voici l'instruction qui va bien :
 


test="number(../row[current()/@index - 1]/total) &lt; 10 and number(total) &gt;= 10"


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

  [XSL] Chuis complètement con ou quoi ?

 

Sujets relatifs
[XSL] Conservation d'éléments après transformation[XML/XSL] pb de résultat !
Mettre du XML dans du HTML et utiliser un XSL[XSL] lire les données qui ne font pas partie d'autres éléments
Créer une arborescence avec XSL?[XSL/XPATH] Problème avec preceding-sibling...
XML et XSLcomment supprimer complètement une page web mise en ligne
php pas interpreté completement par IIS [RESOLU][XML/XSL/Javascript] Transformer du XML en javascript
Plus de sujets relatifs à : [XSL] Chuis complètement con ou quoi ?


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