File size: 2,252 Bytes
05c431f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import subprocess


# Chemins d'entrée et sortie
input_directory = "./corpus"  # Remplacez par le chemin du dossier contenant les fichiers XML
xsl_file = "./Stylesheets-master/start-txt.xsl"  # Remplacez par votre fichier XSL
output_directory = "./txt"  # Remplacez par le dossier où stocker les fichiers TXT
saxon_jar = "./SaxonHE12-5J/saxon-he-12.5.jar"  # Remplacez par le chemin vers le fichier saxon9he.jar

# Fonction pour appliquer la transformation et maintenir la structure des sous-dossiers
def transform_xml_files(input_dir, output_dir):
    for root, dirs, files in os.walk(input_dir):  # Parcours du répertoire source
        for file in files:
            if file.endswith(".xml"):  # Seulement les fichiers XML
                xml_file_path = os.path.join(root, file)
                
                # Crée un chemin de sortie correspondant à la structure du répertoire source
                relative_path = os.path.relpath(root, input_dir)  # Chemin relatif
                output_subdir = os.path.join(output_dir, relative_path)  # Crée le sous-dossier dans le répertoire de sortie
                os.makedirs(output_subdir, exist_ok=True)  # Crée les sous-dossiers si nécessaire
                
                # Chemin de sortie pour le fichier transformé
                output_file_path = os.path.join(output_subdir, file.replace(".xml", ".txt"))
                
                try:
                    # Commande Java pour exécuter Saxon
                    command = [
                        "java", "-jar", saxon_jar,
                        "-s:" + xml_file_path,
                        "-xsl:" + xsl_file,
                        "-o:" + output_file_path
                    ]
                    
                    # Exécuter la commande
                    subprocess.run(command, check=True)
                    print(f"Transformation appliquée à {xml_file_path} -> {output_file_path}")
                    
                except subprocess.CalledProcessError as e:
                    print(f"Erreur lors de la transformation du fichier {xml_file_path}: {e}")

# Exécuter la transformation
transform_xml_files(input_directory, output_directory)