Bonjour à tous,
J'ai beaucoup de mal a trouver après un tri quel est le premier élement,
Je m'explique
Soit le xml suivant :
Je souhaiterai classer mes elmeent par Service/Name ET par langue
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 <Files> <File > <Season>2012</Season> <IssueDate>2012-03-02T00:00:00</IssueDate> <Number>95284</Number> <Link>https0</Link> <Name>DEV pdf</Name> <Language>FR-FR</Language> <Valid>1</Valid> <BeginDate>2012-03-02</BeginDate> <EndDate>2013-12-31</EndDate> <Service > <PK>21909986-81AD-4DF1-B2CA-618831C1E073</PK> <Name>Préparation - Distribution</Name> </Service> </File> <File > <Season>2012</Season> <IssueDate>2012-07-31T00:00:00</IssueDate> <Number>104878</Number> <Link>htt8</Link> <Name>DEV </Name> <Language>FR-FR</Language> <Valid>1</Valid> <BeginDate>2012-07-31</BeginDate> <EndDate>2013-12-31</EndDate> <Service > <PK>21909986-81AD-4DF1-B2CA-618831C1E073</PK> <Name>Préparation - Distribution</Name> </Service> </File> <File > <Season>2012</Season> <IssueDate>2012-02-23T00:00:00</IssueDate> <Number>93691</Number> <Link>httpl</Link> <Name>DEV </Name> <Language>FR-FR</Language> <Valid>1</Valid> <BeginDate>2012-02-23</BeginDate> <EndDate>2013-12-31</EndDate> <Service > <PK>21909986-81AD-4DF1-B2CA-618831C1E073</PK> <Name>Agriculture</Name> </Service> </File> <File > <Season>2012</Season> <IssueDate>2012-08-06T00:00:00</IssueDate> <Number>104883</Number> <Link>https:p</Link> <Name>DEV - Certificat AB V2.pdf</Name> <Language>EN-GB</Language> <Valid>1</Valid> <BeginDate>2012-08-06</BeginDate> <EndDate>2013-12-31</EndDate> <Service > <PK>21909986-81AD-4DF1-B2CA-618831C1E073</PK> <Name>Préparation - Distribution</Name> </Service> </File> <File > <Season>2012</Season> <IssueDate>2012-01-23T00:00:00</IssueDate> <Number>88589</Number> <Link>httpsv</Link> <Name>DEV </Name> <Language>FR-FR</Language> <Valid>1</Valid> <BeginDate>2012-01-23</BeginDate> <EndDate>2013-12-31</EndDate> <Service > <PK>21909986-81AD-4DF1-B2CA-618831C1E073</PK> <Name>Agriculture</Name> </Service> </File> <File > <Season>2012</Season> <IssueDate>2012-02-14T00:00:00</IssueDate> <Number>92049</Number> <Link>https:/P</Link> <Name>DEV </Name> <Language>FR-FR</Language> <Valid>1</Valid> <BeginDate>2012-02-14</BeginDate> <EndDate>2013-12-31</EndDate> <Service > <PK>21909986-81AD-4DF1-B2CA-618831C1E073</PK> <Name>Préparation - Distribution</Name> </Service> </File> <File > <Season>2012</Season> <IssueDate>2012-08-06T00:00:00</IssueDate> <Number>104882</Number> <Link>https:/O</Link> <Name>DEV</Name> <Language>FR-FR</Language> <Valid>1</Valid> <BeginDate>2012-08-06</BeginDate> <EndDate>2013-12-31</EndDate> <Service > <PK>21909986-81AD-4DF1-B2CA-618831C1E073</PK> <Name>Agriculture</Name> </Service> </File> </Files>>
J'ai essayé d'adapter une méthode muench mais je n'y arrive pas du tout
Début de code
Un peu plus loin..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:key name="language" match="//Language" use="."/> <!-- <xsl:key name="begindate" match="BeginDate" use="."/> --> <xsl:key name="name" match="Service/Name" use="."/><!-- <xsl:key name="issuedate" match="IssueDate" use="."/> <xsl:key name="number" match="Number" use="."/>--> <xsl:template match="/">
Si quelqu'un avait une idée...
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 <xsl:for-each select="//File"> <xsl:sort select="Service/Name" order="descending"/> <xsl:sort select="Language" order="ascending"/> <xsl:sort select="Season" order="descending"/> <xsl:sort select="BeginDate" order="descending"/> <xsl:choose> <xsl:when test="substring(Service/Name, 0, 16) = 'EU 834/2007 Pré' and substring(BeginDate,0, 5) > substring(ex:date-time(),0, 5) - 4 and substring(Number,string-length(Number) - 1, 2) != 'AC'"> <xsl:choose> <!-- <xsl:when test="BeginDate[generate-id(.)=generate-id(key('begindate', .)[1])] and Number[not(x < Number/x)]/x">--> <xsl:when test="Service/[generate-id(.)=generate-id(key('language', .)[1])]">
Partager