1+ import saxonche as saxonc
2+
3+ def apply_xslt_transformation ():
4+ with saxonc .PySaxonProcessor (license = True ) as proc :
5+ print ("SaxonC version:" , proc .version )
6+
7+ # Créer le processeur XSLT
8+ xsltproc = proc .new_xslt30_processor ()
9+
10+ # Charger la feuille de style
11+ stylesheet_file = r"C:\Users\Alexandre.DESKTOP-FCK9VBL\Github\memM2EdNITL\xslt\odt-vers-glossaireXML.xsl"
12+ executable = xsltproc .compile_stylesheet (stylesheet_file = stylesheet_file )
13+
14+ if executable is None :
15+ print ("Erreur lors de la compilation de la feuille de style" )
16+ if xsltproc .exception_occurred :
17+ print ("Message d'erreur:" , xsltproc .error_message )
18+ return
19+
20+ # Définir les paramètres
21+ executable .set_parameter ("style-name" , proc .make_string_value ("amh_5f_ancre_5f_glossaire" ))
22+ executable .set_parameter ("dc-title" , proc .make_string_value ("Glossaire" ))
23+ executable .set_parameter ("dc-creator" , proc .make_string_value ("Moret Alexandre" ))
24+ executable .set_parameter ("dc-language" , proc .make_string_value ("fr" ))
25+ executable .set_parameter ("dc-source" , proc .make_string_value ("Le Roman de Brut" ))
26+
27+ # Charger le document source
28+ source_file = r"c:\Users\Alexandre.DESKTOP-FCK9VBL\Github\memM2EdNITL\work\transcription_boldensele.fodt"
29+ document = proc .parse_xml (xml_file_name = source_file )
30+
31+ if document is None :
32+ print ("Erreur lors du chargement du document source" )
33+ return
34+
35+ # Appliquer la transformation
36+ executable .set_initial_match_selection (xdm_value = document )
37+
38+ # Obtenir le résultat
39+ result = executable .apply_templates_returning_string ()
40+
41+ # Écrire le résultat dans un fichier
42+ output_file = r"c:\Users\Alexandre.DESKTOP-FCK9VBL\Github\memM2EdNITL\work\glossaire-output.xml"
43+ with open (output_file , 'w' , encoding = 'utf-8' ) as f :
44+ f .write (result )
45+
46+ print ("Transformation terminée. Résultat sauvegardé dans:" , output_file )
47+
48+ if __name__ == "__main__" :
49+ apply_xslt_transformation ()
0 commit comments