Bonjour,

Je vais vous expliquer mon problème. Alors voilà je débute en XML et j'ai un projet à faire et je rencontre quelques soucis. Je vais d'abord expliquer le sujet :
On a un dictionnaire et une liste de mots. Chaque mot a un niveau de difficulté et le mot doit avoir 3 lettres minimum. J'ai traduit ceci avec ce code XML


<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="dico.xsl" ?>


<dico xmlns="Tux" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="Tux ../xsd/dico.xsd">
    <mots>
        <mot Niveau="1">Test</mot>
        <mot Niveau="2">Difficulté</mot>
        <mot Niveau="15">Renverser</mot>
        <mot Niveau="1">Bonjour</mot>
        <mot Niveau="1">Adieu</mot>
    </mots>
</dico>


Avec ces données, j'aimerai pouvoir faire une transformation XLS et listé les mots par ordre alphabétique. J'ai voulu donc faire un for each car je pense que c'est ce qui correspond le mieux ici. Voici mon code


<?xml version="1.0" encoding="UTF-8"?>



<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>

  
    <xsl:template match="/">
        <html>
            <head>
                <title>dico.xsl</title>
            </head>
            <body>
                            <h1>Dictionnaire trié</h1>
           
	    <xsl:for-each select="dico/mots/mot">
	        <p>Niveau : <xsl:value-of select="@Niveau" /></p>
		<p>Mot : <xsl:value-of select="." /></p>
	    </xsl:for-each>
            </body>
        </html>
    </xsl:template>

</xsl:stylesheet>


Je voulais d'abord tester s'il y affichait mes valeurs mais il m'affiche que le titre "h1" et je ne vois pas pourquoi. Merci de vos futurs réponse Smiley smile
Bonjour
l'intitulé du post devrait être " xml vers html order table item " .....
Avec dans le titre "for each" on est déja dans les détails .

xslt selon le moteur et la version est un vrai langage et supporte l'écriture de fonction .
javascript utile pour less , la suite adobe , npm , less , grunt ......

fichiers dico.xml et dico.xsl
éditeur DW CS6 qui ajout de code "neutre" pour completion/ design
sortie avec Firefox v 42

Le code xslt est celui ci
<xsl:template match="/">
.......<xsl:for-each select="mot">
...........<xsl:sort select="text()" data-type="text" order="ascending"/>
........</xsl:for-each>
</xsl:template>

xslt se base sur un moteur de recherche basé sur expression xpath (pour xml/sax-dom ) sinon voir regex pour fichier raw. Sinon il faut penser node et type de node .

upload/48731-alsaxslt2h.png

Cordialement
Modifié par 75lionel (01 Dec 2015 - 01:42)