Bonjour à tous,

Je débute avec le langage XSLT, et je m'arrache les cheveux depuis une semaine pour résoudre un problème.
Je cherche à créer une nouvelle balise de forme <unitid type=cote>Ms. 1611 (1476)</unitid>, à partir de deux balises de forme <unitid type="numéro_de_notice">1611</unitid><unitid type="cote_indéterminée_a">1476</unitid>.
Ces balises sont contenues dans une balise <did> qui contient d'autres balises qui ne doivent pas faire l'objet de la modification.
Les autres balises <unitid type="division"> ne doivent pas êtres modifiées non plus.

Ci-joint, un fragment de mon fichier XML:
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
<c id="D45051771" level="otherlevel" otherlevel="notice">
				<did>
					<unitid type="numéro_de_notice">1611</unitid>
					<unitid type="cote_indéterminée_a">1476</unitid>
					<unittitle>G. Vassel, Poésies provençales</unittitle>
					<unitdate calendar="gregorian" era="ce" normal="1901/2000">XX<emph render="super">e</emph> siècle</unitdate>
					<langmaterial>
						<language langcode="oci">provençal</language>
					</langmaterial>
					<physdesc>
						<physfacet type="support">Papier</physfacet>
						<extent>87 feuillets</extent>
						<dimensions unit="mm">240 × 185 mm</dimensions>
						<physfacet type="reliure">Reliure maroquin, aux armes de la ville d'Aix</physfacet>
					</physdesc>
				</did>
				<note type="provenance">
					<p>Don de l'auteur, 1911.</p>
				</note>
				<controlaccess>
					<persname>Vassel (G.)</persname>
					<name>Poésies provençales</name>
				</controlaccess>
				<controlaccess>
					<geogname>Aix-en-Provence</geogname>
					<name>Reliure aux armes de la ville</name>
				</controlaccess><c id="D45051772" level="otherlevel" otherlevel="sous-notice">
					<did>
						<unitid type="division">Fol. 2</unitid>
						<unittitle>« Obro dóu jouglar Gustàvi Vassèu ; » avec photographies, dessins et autographes</unittitle>
					</did>
				</c>
			</c><c id="D45051773" level="otherlevel" otherlevel="notice">
				<did>
					<unitid type="numéro_de_notice">1612</unitid>
					<unitid type="cote_indéterminée_a">1477</unitid>
					<unittitle>Statuts de l'Ordre du Croissant, placé sous le patronage de saint Maurice et créé par le roi René</unittitle>
					<unitdate calendar="gregorian" era="ce" normal="1401/1500">XV<emph render="super">e</emph> siècle</unitdate>
					<langmaterial>
						<language langcode="fre">français</language>
					</langmaterial>
					<physdesc>
						<physfacet type="support">Parchemin</physfacet>
						<extent>19 feuillets</extent>
						<dimensions unit="mm">240 × 170 mm</dimensions>
						<physfacet type="reliure">Reliure moderne parchemin, avec armes sur les plats : <emph render="italic">d'or, à la croix bourdonnée de gueules, au chef d'azur, chargé d'une étoile du champ.</emph>
						</physfacet>
					</physdesc>
				</did>
				<scopecontent>
					<p>Incomplet du premier feuillet : « ... ne au soupper... » — Fin (fol. 19 v<emph render="super">o</emph>) : « ... Donné ou conseil de l'Ordre, tenu à Angiers, le V<emph render="super">e</emph> jour d'aoust. » — Cf. Lecoy de la Marche, <emph render="italic">Le roi René</emph> (Paris, Didot, 1875, in-8<emph render="super">o</emph>), t. I, page 531, note 1.</p>
				</scopecontent>
				<note type="provenance">
					<p>Achat, 1907.</p>
				</note>
				<controlaccess>
					<corpname>Croissant (Ordre du)</corpname>
					<name>Statuts</name>
				</controlaccess>
			</c>
J'aimerai donc obtenir quelque chose qui ressemble à ça:

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
<c id="D45051771" level="otherlevel" otherlevel="notice">
				<did>
					<unitid type="cote">Ms. 1611 (1476)</unitid>
					<unittitle>G. Vassel, Poésies provençales</unittitle>
					<unitdate calendar="gregorian" era="ce" normal="1901/2000">XX<emph render="super">e</emph> siècle</unitdate>
					<langmaterial>
						<language langcode="oci">provençal</language>
					</langmaterial>
					<physdesc>
						<physfacet type="support">Papier</physfacet>
						<extent>87 feuillets</extent>
						<dimensions unit="mm">240 × 185 mm</dimensions>
						<physfacet type="reliure">Reliure maroquin, aux armes de la ville d'Aix</physfacet>
					</physdesc>
				</did>
				<note type="provenance">
					<p>Don de l'auteur, 1911.</p>
				</note>
				<controlaccess>
					<persname>Vassel (G.)</persname>
					<name>Poésies provençales</name>
				</controlaccess>
				<controlaccess>
					<geogname>Aix-en-Provence</geogname>
					<name>Reliure aux armes de la ville</name>
				</controlaccess><c id="D45051772" level="otherlevel" otherlevel="sous-notice">
					<did>
						<unitid type="division">Fol. 2</unitid>
						<unittitle>« Obro dóu jouglar Gustàvi Vassèu ; » avec photographies, dessins et autographes</unittitle>
					</did>
				</c>
			</c><c id="D45051773" level="otherlevel" otherlevel="notice">
				<did>
					<unitid type="cote">Ms. 1612 (1477)</unitid>
					<unittitle>Statuts de l'Ordre du Croissant, placé sous le patronage de saint Maurice et créé par le roi René</unittitle>
					<unitdate calendar="gregorian" era="ce" normal="1401/1500">XV<emph render="super">e</emph> siècle</unitdate>
					<langmaterial>
						<language langcode="fre">français</language>
					</langmaterial>
					<physdesc>
						<physfacet type="support">Parchemin</physfacet>
						<extent>19 feuillets</extent>
						<dimensions unit="mm">240 × 170 mm</dimensions>
						<physfacet type="reliure">Reliure moderne parchemin, avec armes sur les plats : <emph render="italic">d'or, à la croix bourdonnée de gueules, au chef d'azur, chargé d'une étoile du champ.</emph>
						</physfacet>
					</physdesc>
				</did>
				<scopecontent>
					<p>Incomplet du premier feuillet : « ... ne au soupper... » — Fin (fol. 19 v<emph render="super">o</emph>) : « ... Donné ou conseil de l'Ordre, tenu à Angiers, le V<emph render="super">e</emph> jour d'aoust. » — Cf. Lecoy de la Marche, <emph render="italic">Le roi René</emph> (Paris, Didot, 1875, in-8<emph render="super">o</emph>), t. I, page 531, note 1.</p>
				</scopecontent>
				<note type="provenance">
					<p>Achat, 1907.</p>
				</note>
				<controlaccess>
					<corpname>Croissant (Ordre du)</corpname>
					<name>Statuts</name>
				</controlaccess>
			</c>
Je pense être sur une première piste grâce à la feuille de style suivante, mais qui me supprime toutes les balises contenues dans <did>, et modifie aussi les <unitid type="division">

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">
    <xsl:template match="//did">
        <unitid type="cote">
            <xsl:value-of select="concat('Ms. ',unitid[@type='numéro_de_notice'],' (',unitid[@type='cote_indéterminée_a'],')')"/>
        </unitid>
    </xsl:template>
</xsl:stylesheet>
Est-ce qu'il existe un autre moyen que de récupérer toutes les balises de <did> perdues en faisant des <xsl:value-of select=""> dans le <xsl:template>?
Quelle expression XPATH utiliser dans le <xsl:template match=""> pour que seules les balises <unitid> soient remplacées?
Je pensais que le <xsl:variable> allait m'aider mais je n'ai pas su l'utiliser comme il faut...

Un grand merci pour votre aide et vos réponses!

Bon week-end