Maison >Java >javaDidacticiel >Comment puis-je ignorer les références DTD lors de l'analyse de fichiers XML avec DocumentBuilder.parse ?
Ignorer les références DTD avec DocumentBuilder.parse
Lors de l'analyse de fichiers XML avec des références à des DTD externes (déclarations de type de document), une erreur peut se produire si la DTD n'est pas disponible ou est inaccessible. Pour surmonter ce problème et ignorer les références DTD lors de l'analyse, définissez diverses fonctionnalités sur DocumentBuilderFactory :
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating(false); dbf.setNamespaceAware(true); dbf.setFeature("http://xml.org/sax/features/namespaces", false); dbf.setFeature("http://xml.org/sax/features/validation", false); dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false); dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); DocumentBuilder db = dbf.newDocumentBuilder();
Avec ces fonctionnalités désactivées, DocumentBuilder ignorera les références DTD et procédera à l'analyse du XML.
Les options de fonctionnalités spécifiques peuvent varier en fonction de l'implémentation de l'analyseur. Par exemple, la documentation de l'analyseur Xerces2 fournit des informations supplémentaires sur la désactivation du chargement et de la validation des DTD. En définissant ces fonctionnalités, vous pouvez analyser les fichiers XML sans avoir besoin de DTD externes, garantissant ainsi que les erreurs de traitement sont minimisées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!