Bonjour à toutes et tous,

Je suis plutôt médiocre en programmation, mais généralement j'arrive à me débrouiller...

Mais cette fois-ci, ça fait un moment que je cherche une solution à ma problématique, et je ne m'en sors pas.
Mes recherches m'ont permis d'aboutir sur le fait que la solution se trouve certainement dans l'écriture d'un fichier xsl, mais je n'arrive pas à comprendre la chose suivante :

Je dois réorganiser les sections d'un fichier xml, en tenant compte de l'ID de certaines sections. Voici un exemple :

J'ai plusieurs points GPS suivis de plusieurs images JPG associées (pas systématiques), il peut y avoir plusieurs images par point :

point655
point656
point657
...
image657_1
image655
image657_2

et je souhaite les réorganiser comme ceci :

point655
image655
point656
point657
image657_1
image657_2
...

Voici le code réel généré par mon appareil (j'ai retiré les infos GPS):
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
 
<JOBFile>
	<FieldBook>
		<PointRecord ID="00000263" TimeStamp="2009-06-25T09:21:41">
			<Name>655</Name>
			<Code></Code>
			<Description1 Name="Description">53</Description1>
			<Method>DirectReading</Method>
			<SurveyMethod>Fix</SurveyMethod>
			<Classification>Normal</Classification>
			<Deleted>false</Deleted>
			<StationID>000001c8</StationID>
			<BackBearingID>000001c9</BackBearingID>
			<TargetID>000001d1</TargetID>
		</PointRecord>
 
		<PointRecord ID="00000264" TimeStamp="2009-06-25T09:21:59">
			<Name>656</Name>
			<Code></Code>
			<Description1 Name="Description">53</Description1>
			<Method>DirectReading</Method>
			<SurveyMethod>Fix</SurveyMethod>
			<Classification>Normal</Classification>
			<Deleted>false</Deleted>
			<StationID>000001c8</StationID>
			<BackBearingID>000001c9</BackBearingID>
			<TargetID>000001d1</TargetID>
		</PointRecord>
 
		<PointRecord ID="00000265" TimeStamp="2009-06-25T09:22:17">
			<Name>657</Name>
			<Code></Code>
			<Description1 Name="Description">63</Description1>
			<Method>DirectReading</Method>
			<SurveyMethod>Fix</SurveyMethod>
			<Classification>Normal</Classification>
			<Deleted>false</Deleted>
			<StationID>000001c8</StationID>
			<BackBearingID>000001c9</BackBearingID>
			<TargetID>000001d1</TargetID>
		</PointRecord>
 
		<MediaFileRecord ID="000004b1" TimeStamp="2009-06-25T09:32:23">
			<RecordID>00000265</RecordID>
			<FileName>PIC_228.jpg</FileName>
			<Notes>
				<Note>Capturer fichier d&apos;Image: PIC_228.jpg  Point: 657</Note>
			</Notes>
		</MediaFileRecord>
 
		<MediaFileRecord ID="000004b2" TimeStamp="2009-06-25T09:37:12">
			<RecordID>00000263</RecordID>
			<FileName>PIC_200.jpg</FileName>
			<Notes>
				<Note>Capturer fichier d&apos;Image: PIC_200.jpg  Point: 655</Note>
			</Notes>
		</MediaFileRecord>
 
		<MediaFileRecord ID="000004b3" TimeStamp="2009-06-25T09:38:21">
			<RecordID>00000265</RecordID>
			<FileName>PIC_231.jpg</FileName>
			<Notes>
				<Note>Capturer fichier d&apos;Image: PIC_231.jpg  Point: 657</Note>
			</Notes>
		</MediaFileRecord>
	</FieldBook>
	<AutreSection1>
	</AutreSection1>
	<AutreSection2>
	</AutreSection2>
</JOBFile>
Tous les "MediaFileRecord" sont regroupés sous les "PointRecord"


Résultat souhaité :
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
 
<JOBFile>
	<FieldBook>		
		<PointRecord ID="00000263" TimeStamp="2009-06-25T09:21:41">
			<Name>655</Name>
			<Code></Code>
			<Description1 Name="Description">53</Description1>
			<Method>DirectReading</Method>
			<SurveyMethod>Fix</SurveyMethod>
			<Classification>Normal</Classification>
			<Deleted>false</Deleted>
			<StationID>000001c8</StationID>
			<BackBearingID>000001c9</BackBearingID>
			<TargetID>000001d1</TargetID>
		</PointRecord>
 
		<MediaFileRecord ID="000004b2" TimeStamp="2009-06-25T09:37:12">
			<RecordID>00000263</RecordID>
			<FileName>PIC_200.jpg</FileName>
			<Notes>
				<Note>Capturer fichier d&apos;Image: PIC_200.jpg  Point: 655</Note>
			</Notes>
		</MediaFileRecord>
 
		<PointRecord ID="00000264" TimeStamp="2009-06-25T09:21:59">
			<Name>656</Name>
			<Code></Code>
			<Description1 Name="Description">53</Description1>
			<Method>DirectReading</Method>
			<SurveyMethod>Fix</SurveyMethod>
			<Classification>Normal</Classification>
			<Deleted>false</Deleted>
			<StationID>000001c8</StationID>
			<BackBearingID>000001c9</BackBearingID>
			<TargetID>000001d1</TargetID>
		</PointRecord>
 
		<PointRecord ID="00000265" TimeStamp="2009-06-25T09:22:17">
			<Name>657</Name>
			<Code></Code>
			<Description1 Name="Description">63</Description1>
			<Method>DirectReading</Method>
			<SurveyMethod>Fix</SurveyMethod>
			<Classification>Normal</Classification>
			<Deleted>false</Deleted>
			<StationID>000001c8</StationID>
			<BackBearingID>000001c9</BackBearingID>
			<TargetID>000001d1</TargetID>
		</PointRecord>
 
		<MediaFileRecord ID="000004b1" TimeStamp="2009-06-25T09:32:23">
			<RecordID>00000265</RecordID>
			<FileName>PIC_228.jpg</FileName>
			<Notes>
				<Note>Capturer fichier d&apos;Image: PIC_228.jpg  Point: 657</Note>
			</Notes>
		</MediaFileRecord>
 
		<MediaFileRecord ID="000004b3" TimeStamp="2009-06-25T09:38:21">
			<RecordID>00000265</RecordID>
			<FileName>PIC_231.jpg</FileName>
			<Notes>
				<Note>Capturer fichier d&apos;Image: PIC_231.jpg  Point: 657</Note>
			</Notes>
		</MediaFileRecord>
 
	</FieldBook>
	<AutreSection1>
	</AutreSection1>
	<AutreSection2>
	</AutreSection2>
</JOBFile>
Chaque "MediaFileRecord" est regroupé sous son "PointRecord" associé (grâce au RecordID)


On voit que dans chaque "MediaFileRecord ID", il y a un "Record ID" correspondant au "PointRecord ID", c'est là que je bloque.
Comment détecter la (ou les) image(s) correspondant à un point, et réecrire l'ensemble de la section "MediaFileRecord" à la suite de la section "PointRecord " ? Le reste du fichier doit quant à lui rester inchangé...

Je pense que l'écriture d'un xsl adapté peut répondre à ce besoin, mais je n'ay arrive pas (peut être que ce n'est pas la bonne approche non plus ?)

J'ai essayé d'être le plus clair possible, mais je ne suis pas sûr de bien me faire comprendre... Si vous souhaitez plus de détails, demandez moi !

Merci d'avance pour l'aide que vous pourrez m'apporter