DOM adalah alat parsing canggih yang cocok untuk dokumen kecil
Mengapa Anda mengatakan itu? Karena itu akan memuat seluruh dokumen xml ke dalam memori untuk membentuk pohon objek dokumen
Secara keseluruhan, kedengarannya menakutkan, tetapi menggunakannya untuk membaca hal-hal kecil cukup nyaman dibandingkan dengan Sax.
Mengenai operasi penambahan dan penghapusannya, dll, saya tidak berencana untuk menulisnya. Ketika saya menonton tutorialnya, saya hampir muntah karena kodenya yang jelek.
Justru karena itulah alat seperti jdom dan dom4j kemudian ada...
Tidak banyak yang perlu dikatakan, cukup buka kodenya
Contoh penguraian dom
import javax.xml.parsers.DocumentBuilder;
impor javax.xml.parsers.DocumentBuilderFactory;
impor org.w3c.dom.Dokumen;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
Demo kelas publik {
public static void main(String[] args) melempar Pengecualian {
//Buat instance pabrik parser dan hasilkan parser
Pabrik DocumentBuilderFactory = DocumentBuilderFactory.newInstance();
Pembuat DocumentBuilder = pabrik.newDocumentBuilder();
//Buat objek dokumen yang perlu diurai
File f = File baru("buku.xml");
//Parsing dokumen dan kembalikan objek Dokumen. Saat ini, dokumen xml telah dimuat ke dalam memori.
//Oke, mari kita buat parsingnya lebih intens, dan sisanya ambil datanya.
Dokumen doc = pembangun.parse(f);
//Dapatkan elemen akar dokumen
//Anda bertanya kepada saya mengapa saya melakukan ini? Karena objek dokumen itu sendiri adalah struktur pohon, dan ini adalah akar dari pohon tersebut.
//Tentu saja, Anda juga dapat menemukan kumpulan elemen secara langsung dan menghilangkan langkah ini
Elemen root = doc.getDocumentElement();
//Node root ditemukan di atas, dan di sini kita mulai mendapatkan kumpulan elemen di bawah node root.
Daftar NodeList = root.getElementsByTagName("buku");
untuk (int i = 0; i < daftar.getLength(); i++) {
//Temukan node dalam koleksi melalui metode item(), dan ubah menjadi objek Elemen
Elemen n = (Elemen) list.item(i);
//Dapatkan peta atribut pada objek, gunakan perulangan for untuk mengekstrak dan mencetak
Node NamedNodeMap = n.getAttributes();
untuk (int x = 0; x < node.getLength(); x++) {
Node nn = node.item(x);
Sistem.keluar.println(nn.getNodeName() + ": " + nn.getNodeValue());
}
//Cetak konten elemen, kodenya sangat rumit, formatnya hampir tetap
System.out.println("judul: " +n.getElementsByTagName("judul").item(0).getFirstChild().getNodeValue());
System.out.println("penulis: " + n.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
Sistem.keluar.println();
}
}
}
Hasil keluaran: