Salut,

Voilà, je souhaiterai récupérer uniquement le nom de la DTD des fichiers XML que je parse, sans m'occuper du contenu de la DTD. Je rencontre un problème lorsque je charge le document avec le parser DOM, le parser cherche à analyser la DTD et lance une Exception car il ne trouve pas la DTD (java.io.FileNotFoundException).
J'ai essayé de désactiver la validation, mais sans succès, voici mon code :

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
 
 
public static String getDTD(String _fichier)
    {
        try
        {
            File ficXML = new File(_fichier);
 
            // Charger le document
            FileInputStream _xml_input_file = new FileInputStream(_fichier);
 
            //instancier le contrcuteur de parseurs
            DocumentBuilderFactory _factory = DocumentBuilderFactory.newInstance();
 
            //ignorer les commentaires dans les fichiers XML parsè±?
            _factory.setValidating(false);
 
            // cr褲 un parseur
            DocumentBuilder _builder = _factory.newDocumentBuilder();
 
            // Charger le document
            Document doc = _builder.parse(_xml_input_file);
 
            if (doc.getDoctype()!=null)
            {
                return doc.getDoctype().getName();
            }
            else return "";
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return "";
        }
 
    }
J'aimerai uniquement obtenir le contenu de <!DOCTYPE ...> pour effectuer d'autres traitements par la suite (XSL associée à la DTD).

Merci d'avance

++