Maison  >  Article  >  Java  >  Comment ignorer les références DTD dans DocumentBuilder.parse() ?

Comment ignorer les références DTD dans DocumentBuilder.parse() ?

DDD
DDDoriginal
2024-10-31 05:00:02113parcourir

How to Ignore DTD References in DocumentBuilder.parse()?

Ignorer les références DTD dans DocumentBuilder.parse()

Lors de l'analyse de fichiers XML contenant des références à des DTD externes, vous pouvez rencontrer des erreurs si la DTD n'est pas disponible. Pour éviter ces erreurs et vous concentrer uniquement sur l'analyse du contenu XML, envisagez la solution suivante :

<code class="java">DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

// Disable validation and related features
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();
Document doc = db.parse(f);</code>

En désactivant ces fonctionnalités, l'analyseur ignorera les références DTD et procédera à l'analyse du contenu XML.

Notez que les options spécifiques peuvent varier en fonction de l'implémentation de l'analyseur XML. Reportez-vous à la documentation de votre analyseur spécifique pour plus d'informations sur la désactivation des fonctionnalités liées à la DTD.

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!

Déclaration:
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