Maison > Java > javaDidacticiel > Comment puis-je ignorer les références DTD lors de l'analyse de fichiers XML avec DocumentBuilder.parse ?

Comment puis-je ignorer les références DTD lors de l'analyse de fichiers XML avec DocumentBuilder.parse ?

Mary-Kate Olsen
Libérer: 2024-10-29 19:05:30
original
539 Les gens l'ont consulté

How can I ignore DTD references when parsing XML files with 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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal