Bonjour, j'aimerais vouloir modifier un fichier XML (avec XSLT) contenant des informations sur des périodiques de la manière suivante :
Les datafield correspondent aux formats MARC donc le tag 245 correspond aux titres du périodique. Alors il faut que je compare ce titre avec les titres contenu dans 2 autres fichiers XML dont la structure est la suivante :
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 <collection xmlns="http://www.loc.gov/MARC21/slim"> <record xmlns="http://www.loc.gov/MARC21/slim"> <controlfield tag="001">836687</controlfield> <controlfield tag="003">SzGeCERN</controlfield> <datafield tag="037" ind1="" ind2=""> <subfield code="a">hep-ph/0505195</subfield> </datafield> <datafield tag="041" ind1="" ind2=""> <subfield code="a">eng</subfield> </datafield> <datafield tag="088" ind1="" ind2=""> <subfield code="a">BARI-TH-05-510</subfield> </datafield> <datafield tag="100" ind1="" ind2=""> <subfield code="a">Colangelo, P</subfield> </datafield> <datafield tag="245" ind1="" ind2=""> <!-- <subfield code="a">Radiative transitions of $D^*_{sJ}(2317)$ and $D_{sJ}(2460)$</subfield> --> <subfield code="a">First observation of $\Sigma^-$-${\rm e}^-$ elastic scattering in the hyperon beam experiment WA89 at CERN</subfield> </datafield> <datafield tag="260" ind1="" ind2=""> <subfield code="c">2005</subfield> </datafield> </record> <record xmlns="http://www.loc.gov/MARC21/slim"> <controlfield tag="001">836684</controlfield> <controlfield tag="003">SzGeCERN</controlfield> <datafield tag="037" ind1="" ind2=""> <subfield code="a">hep-ph/0505192</subfield> </datafield> <datafield tag="041" ind1="" ind2=""> <subfield code="a">eng</subfield> </datafield> <datafield tag="088" ind1="" ind2=""> <subfield code="a">CERN-PH-TH-2005-083</subfield> </datafield> <datafield tag="100" ind1="" ind2=""> <subfield code="a">Seymour, M H</subfield> </datafield> <datafield tag="245" ind1="" ind2=""> <subfield code="a">Quantum ChromoDynamics</subfield> </datafield> <datafield tag="260" ind1="" ind2=""> <subfield code="c">2005</subfield> </datafield> <datafield tag="269" ind1="" ind2=""> <subfield code="c">23 May 2005</subfield> </datafield> <datafield tag="300" ind1="" ind2=""> <subfield code="a">49 p</subfield> </datafield> </record> </collection>
A partir de là, s'il y a une correspondance entre un titre du premier fichier XML et l'un des deux autres, il me faut ajouter un tag avec les informations sur la publication dans le premier fichier XML, c'est à dire comme fils du tag <datafield tag="260"> il me faut ajouter ce tag <subfield code="c">
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <journals> <journal> <title>Scalar leptoquark pair production at the CERN LHC: signal and backgrounds </title> <publication> The European Physical Journal C - Particles and Fields </publication> <publisher> Springer-Verlag GmbH </publisher> <issue> Volume 2, Number 3 </issue> <authors> B. Dion, L. Marleau, G. Simon, et al. </authors> <pages> 497 - 502 </pages> </journal> <journal> ... </journal> <journal> ... </journal> </journals>
Avec ici l'information de la publication pris des autres fichiers XML</subfield>
Mon problème est que je ne sais pas comment ajouter ce tag au bon endroit dans le fichier XML, je ne sais pas si cela est possible avec XSL seulement ou s'il faut avoir recours à DOM, dans la mesure du possible je voudrais le faire seulement avec XSL.
Pour le moment je n'arrive qu'à sortir la publication toute seule mais je ne sais pas quelle fonction ou quelle structure de template utilisé pour modifier la partie du fichier XML d'origine que j'utlise. ça serait gentil si quelqu'un pourrait m'aider.
Merci
Partager