Bonjour à tous,
Je cherche à me faire un format de bibliographie perso, mais je rame avec la mise en place d'un tri alphabétique.
Le truc c'est que chaque noeud n'a pas les même type de fils, et donc c'est en fonction des fils que je récupère la valeur qui me servira de champs pour le tri.
J'ai voulu utiliser les variables, mais cela ne fonctionne pas, je n'ai rien en sortie. Je ne saisi pas ce que j'ai raté / pas compris.
L'objectif, pour moi, ce serait de trier les éléments b:Source pour ensuite appliquer les transformations que j'ai déjà définies.
Voici mon xslt
et le code xml original
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"> <xsl:output method="xml" encoding="us-ascii"/> <xsl:template match="/"> <xsl:for-each select="b:Source"> <xsl:variable name="NomTri"> <xsl:choose> <xsl:when test="string-length(b:Author/b:Author/b:Corporate)>0"> <xsl:value-of select="./b:Author/b:Author/b:Corporate"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="./b:Author/b:Author/b:NameList/b:Person/b:Last"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:sort select="$NomTri"/> <xsl:call-template name="recopie"></xsl:call-template> </xsl:for-each> </xsl:template> <!-- juste en test afin de voir si le tri est correct --> <xsl:template name="recopie"> <xsl:copy-of select="node()"> </xsl:copy-of> </xsl:template> </xsl:stylesheet>
Certains reconnaitrons les bibliographies Word.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <b:Sources xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography" xmlns="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"> <b:Source> <b:Tag>ris</b:Tag> <b:SourceType>InternetSite</b:SourceType> <b:Guid>{DD6B2560-22C7-4112-9924-25896C446188}</b:Guid> <b:LCID>0</b:LCID> <b:Author> <b:Author> <b:Corporate>risques-pme.fr</b:Corporate> </b:Author> </b:Author> <b:Title>Stress, charge de travail et risque professionnel</b:Title> <b:URL>http://www.risques-pme.fr/les-risques-particuliers/stress-et-charge-de-travail.aspx</b:URL> <b:Comments>Pas utilisé</b:Comments> <b:RefOrder>1</b:RefOrder> </b:Source> <b:Source> <b:Tag>ARN12</b:Tag> <b:SourceType>InternetSite</b:SourceType> <b:Guid>{C94A21CC-2EF0-4CDB-AA3C-78CAD982650D}</b:Guid> <b:LCID>0</b:LCID> <b:Author> <b:Author> <b:NameList> <b:Person> <b:Last>ARNAUD</b:Last> <b:First>Didier</b:First> </b:Person> </b:NameList> </b:Author> </b:Author> <b:Title>Le stress, une méthode de management comme une autre ?</b:Title> <b:Year>2012</b:Year> <b:Month>novembre</b:Month> <b:Day>18</b:Day> <b:URL>http://www.liberation.fr/economie/2012/11/18/le-stress-une-methode-de-management-comme-une-autre_861369</b:URL> <b:Comments>pas utilisé</b:Comments> <b:RefOrder>2</b:RefOrder> </b:Source> </b:Sources>
Si quelqu'un pourrait m'expliquer ce que j'ai raté dans mon xslt, ce serait sympa.
Partager