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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Débutant en XSLT : <xsl:if>

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Débutant en XSLT : <xsl:if>

n°803963
big_mouth_​fish
Posté le 23-07-2004 à 09:15:13  profilanswer
 

Bonjour, voila je débute en XSLT et je suis déjà confronté à de simples problèmes ! Du moins je pense.
J'ai un fichier .xml avec une balise <PLANETS> ayant ou pas des enfants

Citation :

<PLANET>
Exemple :  
<PLANETS>
<PLANET>
<NAME>Terre</NAME>
</PLANET>
</PLANETS>
...


 
Dans mon fichier xsl ci-dessous je souhaiterai afficher "Planet" ci le nombre de noueud enfant de PLANETS est inférieur à 10.
Mais d'une part, il n'accepte pas que j'utilise le signe inférieur et puis si je change de signe il ne prend pas en compte le if !
Quel est mon problème ?
 

Citation :

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">  
 
 <HTML>
  <xsl:apply-templates/>
 </HTML>
 
<xsl:template match="PLANETS">
 <xsl:if test="count(PLANET) < 10">
  Planete
 </xsl:if>
</xsl:template>
 
</xsl:stylesheet>


 
J'ai une 2ème question toute bete certainement. Est-on obligé d'avoir ce lien internet dans la 2eme balise du fichier xsl pour que les xslt fonctionne ? Ceci implique t-il qu'il faut etre connecté à internet ? Que posséder iExplorer sans etre connecté ne fonctionnera pas ?
 
Merci d'avance

mood
Publicité
Posté le 23-07-2004 à 09:15:13  profilanswer
 

n°804039
mathix
mathix@jabber.org
Posté le 23-07-2004 à 10:14:57  profilanswer
 

tu dois utiliser ça :  
 

Code :
  1. <xsl:if test="count(PLANET) &lt; 10">


 

big_mouth_fish a écrit :


J'ai une 2ème question toute bete certainement. Est-on obligé d'avoir ce lien internet dans la 2eme balise du fichier xsl pour que les xslt fonctionne ? Ceci implique t-il qu'il faut etre connecté à internet ? Que posséder iExplorer sans etre connecté ne fonctionnera pas ?


non tu n'as pas besoin d'être connecté, c'est juste une chaine de caractère qui sert d'espace de nom unique et la convention veut qu'on utilise une URL (et pour faire pro, à l'adresse de l'URL il faut mettre une description de l'espace de nom)

n°804079
big_mouth_​fish
Posté le 23-07-2004 à 10:30:49  profilanswer
 

Merci pour l'info mais il semble le pb ne soit pas réglé. Si je remplace &lt; par &gt; il m'affiche tout autant le message planete. Cela dit ce n'est pas logique de mettre &lt; ou &gt; car il s'agit d'un condition ! non ?

n°804128
mathix
mathix@jabber.org
Posté le 23-07-2004 à 11:08:23  profilanswer
 

ton code XSL n'est pas valide à cause du bout suivant:
 

Code :
  1. <HTML>
  2.   <xsl:apply-templates/>
  3. </HTML>


 
je l'ai oté pour tester et "count(PLANET) &lt; 10" fonctionne très bien

n°804161
big_mouth_​fish
Posté le 23-07-2004 à 11:30:48  profilanswer
 

Est-ce que ça te dérangerait de m'envoyer tes fichiers parce que j'ai beau changé pour vérifier tes dires, moi ça marche pas pas !

n°804210
mathix
mathix@jabber.org
Posté le 23-07-2004 à 11:51:03  profilanswer
 

puisque les fichiers ne sont pas très grand je te le mets ici :
XML :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <PLANETS>
  3. <PLANET>
  4. <NAME>Terre</NAME>
  5. </PLANET>
  6. </PLANETS>


 
XSL :

Code :
  1. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  2. <xsl:template match="PLANETS">
  3. <xsl:if test="count(PLANET) &lt; 10">
  4.   Planete
  5. </xsl:if>
  6. </xsl:template>
  7. </xsl:stylesheet>


Message édité par mathix le 23-07-2004 à 11:52:23
n°804331
big_mouth_​fish
Posté le 23-07-2004 à 13:00:57  profilanswer
 

As-tu essayé de remplacer &lt; par &gt; ? Est-ce que ça marche ? Moi pas. Je ne comprends pas.

n°804361
big_mouth_​fish
Posté le 23-07-2004 à 13:28:39  profilanswer
 

Il semble que mon problème ne vienne pas du if mais du lien vers le site. Je travaille avec IE 5 et le lien est différent ! Faut le savoir ?!

n°822536
avander
Posté le 13-08-2004 à 16:09:20  profilanswer
 

Classique!
 
Si ton lien contient 'WD' tu utilise toujours la version propriètaire de Microsoft du moteur de transformations XSLT et tu auras toujours des problèmes pcq. non conforme aux standards.  
 
Il faut installer MSXML 3 voire 4 pour être tranquille, de plus ce dernier est performant, il est fourni avec un petit SDK sympa pour avoir la doc sous la main.  
 

n°1360592
ashiiid
Posté le 05-05-2006 à 16:54:54  profilanswer
 

moi j'ai testé ça sur XMLSpy et ça marche
 
le code xsl :
 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:template match="PLANETS">  
 <xsl:if test="count(PLANET) > 10">  
 Planete : plus grand que dix
 </xsl:if>
 <xsl:if test="not(count(PLANET) > 10)">  
 Planete plus petit petit que dix
 </xsl:if>
 </xsl:template>  
 </xsl:stylesheet>  
 
 
a+


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

  Débutant en XSLT : <xsl:if>

 

Sujets relatifs
Questions débutant DBI + Suivi de variablesUn debutant qui se noie
[C]kel bouquin pour un debutant total en programmation?[résolu] Aide pour webmaster debutant
Cherche prog pour XSLT (XML + XSL) vers XHTML et PDF sous WinXPpb debutant
Question de débutantcontrole active-X winsock et serveur pop3(débutant)
Petite explication pour un débutant...jsp : pb de debutant...
Plus de sujets relatifs à : Débutant en XSLT : <xsl:if>


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