DTD-Referenzen in DocumentBuilder.parse() ignorieren
Beim Parsen von XML-Dateien, die Referenzen auf externe DTDs enthalten, können Fehler auftreten, wenn die DTD ist nicht verfügbar. Um diese Fehler zu vermeiden und sich ausschließlich auf das Parsen des XML-Inhalts zu konzentrieren, ziehen Sie die folgende Lösung in Betracht:
<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>
Durch Deaktivieren dieser Funktionen ignoriert der Parser DTD-Referenzen und fährt mit dem Parsen des XML-Inhalts fort.
Beachten Sie, dass bestimmte Optionen je nach XML-Parser-Implementierung variieren können. Weitere Informationen zum Deaktivieren von DTD-bezogenen Funktionen finden Sie in der Dokumentation Ihres spezifischen Parsers.
Das obige ist der detaillierte Inhalt vonWie ignoriere ich DTD-Referenzen in DocumentBuilder.parse()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!