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!