Heim  >  Artikel  >  Java  >  Wie kann ich DTD-Referenzen während der XML-Analyse in Java deaktivieren?

Wie kann ich DTD-Referenzen während der XML-Analyse in Java deaktivieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 23:58:30571Durchsuche

How can I disable DTD references during XML parsing in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn