Rumah > Java > javaTutorial > Bagaimanakah saya boleh mengabaikan rujukan DTD apabila menghuraikan fail XML dengan DocumentBuilder.parse?

Bagaimanakah saya boleh mengabaikan rujukan DTD apabila menghuraikan fail XML dengan DocumentBuilder.parse?

Mary-Kate Olsen
Lepaskan: 2024-10-29 19:05:30
asal
542 orang telah melayarinya

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

Mengabaikan Rujukan DTD dengan DocumentBuilder.parse

Apabila menghuraikan fail XML dengan rujukan kepada DTD luaran (Pengisytiharan Jenis Dokumen), ralat mungkin berlaku jika DTD tidak tersedia atau tidak boleh diakses. Untuk mengatasi isu ini dan mengabaikan rujukan DTD semasa menghuraikan, tetapkan pelbagai ciri pada DocumentBuilderFactory:

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();
Salin selepas log masuk

Dengan ciri ini dilumpuhkan, DocumentBuilder akan mengabaikan rujukan DTD dan meneruskan penghuraian XML.

Pilihan ciri khusus mungkin berbeza-beza bergantung pada pelaksanaan parser. Contohnya, dokumentasi penghurai Xerces2 menyediakan cerapan tambahan untuk melumpuhkan pemuatan dan pengesahan DTD. Dengan menetapkan ciri ini, anda boleh menghuraikan fail XML tanpa memerlukan DTD luaran, memastikan ralat pemprosesan diminimumkan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengabaikan rujukan DTD apabila menghuraikan fail XML dengan DocumentBuilder.parse?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan