| Auteur | |
|---|---|
| SynRJ | # 12 Jun 2009 - 16:07:01 |
| 64 Posts |
Bonjour, Je débute un test visant à transformer un fichier XML en un autre. J'ai essayé de chercher de bons cours en ligne, mais n'ai rien trouvé qui puisse m'aider à bien débuter et à résoudre mon problème Le fichier XML de départ est sous la forme suivante : <documents> Je souhaiterai pouvoir n'afficher que les documents correspondants à un statut donné (par exemple statut="3"), mais j'avoue ne pas vraiment savoir comment m'y prendre... Pour le moment, mon .xsl affiche tous les documents : <xsl:template match="documents"> Une idée ? Ou bien une adresse avec des cours complets (et pas mal d'exemples, autres que les exemples bateaux donnés par tous les sites ^^). Merci, Modifié par SynRJ (15 Jun 2009 - 09:35) |
| SynRJ | # 12 Jun 2009 - 16:12:31 |
| 64 Posts |
En fait, pour préciser ma question, j'aimerais savoir s'il est possible de faire une comparaison de ce type :<xsl:if test="value-of select='.' = '1'"> |
| Gilles | # 13 Jun 2009 - 14:55:38 |
| 999 Posts |
Bonjour, Je ne suis pas sûr d'avoir bien compris ta question... mais a priori, pour ne sélectionner, par exemple, que les éléments document possédant un élément field ayant un attribut fieldname valant statut et valant eux-mêmes 3, tu peux utiliser la commande XPath suivante:
Il suffit ensuite de tester la valeur de l'élément field en question, et de la comparer à 3... Donne à une personne un poisson, elle se nourrira pendant un jour. Apprends-lui à pêcher, elle se nourrira toute sa vie. Kuan-Tseu |
| SynRJ | # 15 Jun 2009 - 09:07:29 |
| 64 Posts |
Merci de ta réponse, Alors, j'ai fais la chose suivante : <table border="1px">Le soucis c'est que ces lignes me renvoient tous les documents, pas seulement ceux dont le champ "status" vaut 1. Autrement j'avais fait ça : <xsl:template match="field">Ce qui me permet de récupérer uniquement les documents dont le champ "status" est à 1, le problème c'est que je reçois un tableau remplit de 1, je ne sais pas comment "remonter dans le ." pour obtenir la valeur de l'ensemble des champs du document. Modifié par SynRJ (15 Jun 2009 - 09:10) |
| Gilles | # 15 Jun 2009 - 09:29:58 |
| 999 Posts |
Bonjour, Pour récupérer les éléments field de ton document, il faut d'abord remonter d'un cran dans la hiérarchie XML, avec .. Si tu écris dans ton if (celui du template), <xsl:value-of selec="../field" />, tu obtiendras la valeur du premier élément field, fils de l'élément parent de celui que tu considères, autrement dit, ici, la valeur de l'élément field possédant un attribut nom. Si tu veux afficher l'ensemble des éléments field de l'élément document qui t'intéresse, tu peux alors classiquement soit faire appel à une boucle (<xsl:for-each select="../field">...), soit faire appel à un template... Donne à une personne un poisson, elle se nourrira pendant un jour. Apprends-lui à pêcher, elle se nourrira toute sa vie. Kuan-Tseu |
| SynRJ | # 15 Jun 2009 - 09:35:15 |
| 64 Posts |
Merci beaucoup, ça fonctionne :<xsl:template match="field"> |
Les références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org
Nos partenaires : Editions Eyrolles