Heim > Java > javaLernprogramm > Hauptteil

Wie analysiere ich XML-Dateien und ignoriere externe DTD-Referenzen in Java?

Linda Hamilton
Freigeben: 2024-10-28 21:28:31
Original
491 Leute haben es durchsucht

How to Parse XML Files Ignoring External DTD References in Java?

DTD-Referenzen in DocumentBuilder.parse ignorieren

Beim Parsen einer XML-Datei, die auf eine externe DTD (Document Type Definition) verweist, kann es zu Problemen kommen Fehler, wenn die DTD nicht verfügbar ist oder Sie keine Validierung anhand dieser durchführen möchten. Um die Datei zu analysieren und dabei DTD-Referenzen zu ignorieren, führen Sie die folgenden Schritte aus:

Lösung:

Konfigurieren Sie die DocumentBuilderFactory, um die DTD-Validierung zu deaktivieren:

<code class="java">DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

// Disable validation
dbf.setValidating(false);

// Disable namespace awareness (optional)
dbf.setNamespaceAware(false);

// Disable specific features that load DTDs
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);</code>
Nach dem Login kopieren

Sobald die DocumentBuilderFactory konfiguriert ist, können Sie mit der Erstellung eines DocumentBuilders und dem Parsen der Datei fortfahren:

<code class="java">DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(f);</code>
Nach dem Login kopieren

Durch Deaktivieren der DTD-Validierung und verwandter Funktionen ignoriert der Parser Verweise auf externe DTDs und fährt mit dem Parsen der XML-Datei fort ohne einen Fehler auszulösen. Es ist wichtig zu beachten, dass diese Lösung möglicherweise nicht für alle Szenarien geeignet ist, beispielsweise wenn Sie sich bei der Datenvalidierung auf die DTD verlassen.

Das obige ist der detaillierte Inhalt vonWie analysiere ich XML-Dateien und ignoriere externe DTD-Referenzen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage