Heim >Java >javaLernprogramm >Wie kann ich DTD-Referenzen ignorieren, wenn ich XML-Dateien mit DocumentBuilder.parse parse?

Wie kann ich DTD-Referenzen ignorieren, wenn ich XML-Dateien mit DocumentBuilder.parse parse?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 19:05:30544Durchsuche

How can I ignore DTD references when parsing XML files with DocumentBuilder.parse?

DTD-Referenzen mit DocumentBuilder.parse ignorieren

Beim Parsen von XML-Dateien mit Referenzen auf externe DTDs (Document Type Declarations) kann ein Fehler auftreten wenn die DTD nicht verfügbar oder nicht zugänglich ist. Um dieses Problem zu lösen und DTD-Referenzen beim Parsen zu ignorieren, legen Sie verschiedene Funktionen in der DocumentBuilderFactory fest:

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();

Wenn diese Funktionen deaktiviert sind, ignoriert der DocumentBuilder DTD-Referenzen und fährt mit dem Parsen des XML fort.

Spezifische Funktionsoptionen können je nach Parser-Implementierung variieren. Beispielsweise bietet die Xerces2-Parser-Dokumentation zusätzliche Einblicke in die Deaktivierung des DTD-Ladens und der DTD-Validierung. Durch das Festlegen dieser Funktionen können Sie XML-Dateien ohne externe DTDs analysieren und so sicherstellen, dass Verarbeitungsfehler minimiert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich DTD-Referenzen ignorieren, wenn ich XML-Dateien mit DocumentBuilder.parse parse?. 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