DTD-Referenzen beim Parsen von Dokumenten ignorieren
Beim Parsen von XML-Dateien mit DTD-Referenzen können Fehler aufgrund fehlender oder nicht zugänglicher DTD-Dateien auftreten. Um diese Fehler zu umgehen und gleichzeitig DTD-Referenzen zu ignorieren, sind Änderungen an den DocumentBuilderFactory-Einstellungen erforderlich.
Instanziieren Sie innerhalb der getDoc()-Methode eine DocumentBuilderFactory und konfigurieren Sie ihre Funktionen wie folgt:
<code class="java">DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // Ignore DTD references dbf.setValidating(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); // Additional settings dbf.setNamespaceAware(true); dbf.setFeature("http://xml.org/sax/features/namespaces", false); DocumentBuilder db = dbf.newDocumentBuilder(); ...</code>
By Durch Deaktivieren der Validierung und Unterdrücken des Ladens externer DTDs überspringt der DocumentBuilder DTD-Referenzen während der Analyse. Dies ermöglicht die Verarbeitung von XML-Dateien, ohne auf die Verfügbarkeit von DTDs angewiesen zu sein.
Weitere Details zu den Anpassungsoptionen speziell für die Parser-Implementierung finden Sie in der Xerces2-Dokumentation.
Das obige ist der detaillierte Inhalt vonWie kann ich DTD-Referenzen während der XML-Analyse in Java deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!