Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
killer75
# 06 Mar 2008 - 15:11:47
Citer
2 Posts
Bonjour,
voilà mon problème:
j'ai le fichier xml suivant:

<xml>
<data>
<row nom="BERNARD" prenom="Sylvie" societe="Peugeot" />
<row nom="DUPOND" prenom="Maurice" societe="PEUGEOT" />
<row nom="FEDERER" prenom="Sylvain" societe="néptune" />
<row nom="RERNARD" prenom="Marc" societe="NEPTUNE" />
</data>
</xml>

et je souhaiterai avoir ce résultat(en html):

NEPTUNE
FEDERER Sylvain
RERNARD Marc
PEUGEOT
BERNARD Sylvie
DUPOND Maurice

et je dois avouais que je ne vois pas du tout comment faire sachant qu'il faut prendre en compte la casse, j'ai esseyer pleins de truc avec translate key la méthode muenchienne mais rien à faire j'en peux plus je crack...

Donc je remercie d'avance tous ceux qui m'aideront à trouver une solution !!!
Modifié par killer75 (06 Mar 2008 - 17:58)

^
killer75
# 06 Mar 2008 - 17:57:58
Citer
2 Posts
J'ai eu la réponse sur un autre forum donc je post la solution ici !!!
A bientôt!

^
Gilles
# 06 Mar 2008 - 18:55:39
Citer
769 Posts
Hum... je ne vois pas ta solution cligne

Sinon, comme ça à brûle-pourpoint j'aurais créé un template, prenant en paramètre une chaîne de caractères quelconque et qui à force de translate change toutes les minuscules et lettres accentuées en majuscules, du genre

<xsl:template name="miseEnMajuscules">
<xsl:param name="chaine" />
<xsl:variable name="chaine1" select="translate($chaine, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")" /> <!-- on commence par les minuscules -->
<xsl:variable name="chaine2" select=translate($chaine1,"àâéèêîïôûù","AAEEEIIOUU") /> <!-- on continue avec les lettres minuscules accentuées -->
<xsl:variable name="chaine3" select=translate($chaine2,"ÀÂÉÈÊÎÏÔÛÙ","AAEEEIIOUU") /> <!-- on continue avec les lettres majuscules accentuées -->
<!-- Éventuellement ici on place d'autres traitements... -->
<xsl:value-of select="$chaine3" />
</xsl:template>


Je n'ai pas testé, mais en tout cas c'est l'idée cligne

Après, il ne reste plus qu'à trier en fonction des chaînes de caractères transformées par ce template, puis à tester à chaque fois si c'est la première fois qu'on la rencontre (avec des next-sibling ou quelque chose dans ce genre...)

Donne à une personne un poisson, elle se nourrira pendant un jour.
Apprends-lui à pêcher, elle se nourrira toute sa vie.

Kuan-Tseu

http://www.gchagnon.fr/ 
^
Xavier
# 08 Mar 2008 - 10:56:17
Citer
581 Posts
Bonjour,

Je complète la réponse de Gilles (le translate() est effectivement la bonne idée), ensuite je crois que pour les regroupements, le plus simple est d'exploiter l'élément <xsl:key ... />. Un exemple très similaire avait déjà été résolu dans ce forum.

http://www.ultra-fluide.com/ressources.htm 
^

référencesLes 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 - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 7.3 ms - Charte