Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh melumpuhkan rujukan DTD semasa penghuraian XML dalam Java?

Bagaimanakah saya boleh melumpuhkan rujukan DTD semasa penghuraian XML dalam Java?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 23:58:30571semak imbas

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

Mengabaikan Rujukan DTD dalam Penghuraian Dokumen

Apabila menghuraikan fail XML dengan rujukan DTD, seseorang mungkin menghadapi ralat kerana fail DTD yang hilang atau tidak boleh diakses. Untuk memintas ralat ini sambil mengabaikan rujukan DTD, pengubahsuaian pada tetapan DocumentBuilderFactory diperlukan.

Dalam kaedah getDoc(), nyatakan DocumentBuilderFactory dan konfigurasikan cirinya seperti berikut:

<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>

Oleh melumpuhkan pengesahan dan menyekat pemuatan DTD luaran, DocumentBuilder akan melangkau rujukan DTD semasa menghuraikan. Ini membenarkan pemprosesan fail XML tanpa bergantung pada ketersediaan DTD.

Rujuk dokumentasi Xerces2 untuk butiran tambahan tentang pilihan penyesuaian khusus untuk pelaksanaan parser.

Atas ialah kandungan terperinci Bagaimanakah saya boleh melumpuhkan rujukan DTD semasa penghuraian XML dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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