| Auteur | |
|---|---|
| Harleen | # 03 Jun 2009 - 12:00:59 |
| 8 Posts |
Bonjour, j'ai bien vu qu'un post similaire avait été posté, mais la solution qui a été proposée ne correspond pas à mon problème. J'ai fait plusieurs tests sans succès. voici mon xml de départ :
on peut voir ici que les prix du catalogue ont une nature, pour cela, je dois les regrouper selon leur nature (j'ai d'ailleurs posté un sujet sur cela). Or, certains prix du catalogue peuvent ne pas contenir d'élément <Nature>. J'aimerais, dans mon fichier xsl, pouvoir faire un traitement différent dans le cas où j'ai une nature et dans le cas où je n'en ai pas. Pour cela, j'aimerais faire un traitement dans le cas où un prix ne contient pas de natures, je dois donc faire une condition "si le prix ne contient pas de natures". J'ai essayé plusieurs solutions : - <xsl:if test="node()[not(Nature)]"> et - <xsl:if test="./Prix_Detail/Nature[@NatureID='']=''"> </xsl:if> sans succès, pourriez-vous m'éclairer s'il vous plait?? merci d'avance Harleen |
| Gilles | # 03 Jun 2009 - 15:25:59 |
| 1002 Posts |
Bonjour! Le plus simple, tout bêtement:
Si l'élément "Nature" n'existe pas, l'évaluation de l'expression XPath "Nature" renvoie false... Il suffit donc de prendre son complément logique Donne à une personne un poisson, elle se nourrira pendant un jour. Apprends-lui à pêcher, elle se nourrira toute sa vie. Kuan-Tseu |
| Harleen | # 04 Jun 2009 - 08:57:14 |
| 8 Posts |
Je me suis servie de choose when otherwise, et ça marche très bien, mais je garde ta solution sous le coude merci à toi!Harleen |
| freezystem | # 20 Nov 2009 - 14:15:49 |
| 11 Posts |
sinon encore plus simple pour tester l'existence de ta balise nature <xsl:if test="catalogue/Prix_Detail/Nature"> (marche aussi avec xsl:choose) ce qui veux tout simplement "si Nature existe faire...", c'est un syntaxe courte. Modifié par freezystem (20 Nov 2009 - 14:16) Life Is ShOrT... PlAy MoRe!!! |