1. Pendahuluan
Apa itu jdom?
JDOM adalah proyek open source berdasarkan struktur pohon, menggunakan teknologi java murni untuk menguraikan, menghasilkan, membuat serialisasi, dan beroperasi pada dokumen XML. Ini secara langsung melayani pemrograman Java, menggunakan fitur bahasa Java (metode kelebihan beban, koleksi), menggabungkan fungsi saksofon dan DOM, dan membuat parsing XML asli sesederhana mungkin. Akan mudah bagi kita untuk menggunakan JDom untuk mengurai XML.
Keuntungan JDom:
1. JDom didedikasikan untuk teknologi Java dan mengambil lebih sedikit memori daripada aplikasi DOM.
2. JDom menyediakan metode dasar yang lebih sederhana dan logis untuk mengakses informasi XML
3. Selain file XML, JDom juga dapat mengakses sumber data lain, misalnya, Anda dapat membuat kelas untuk mengakses data dari hasil kueri SQL.
Komposisi JDom:
JDom terdiri dari 6 paket
Kelas elemen mewakili elemen dokumen XML
org.jdom: kelas dasar yang akan digunakan untuk menguraikan file XML
org.jdom.Adapters: Kelas Java yang berisi adaptasi DOM
org.jdom.filter: kelas filter yang berisi dokumen XML
org.jdom.input: kelas java yang berisi membaca dokumen XML
org.jdom.Output: Kelas yang berisi dokumen XML output
org.jdom.trans Form: berisi kelas Java yang mengonversi antarmuka dokumen XML JDOM ke antarmuka dokumen XML lainnya
Apa itu XML?
XML adalah bahasa markup yang dapat diperluas secara luas. Ada banyak cara untuk mengurai XML di Java, termasuk yang paling umum digunakan seperti JDOM, DOM4J, SAX, dll.
Unduh paket jdom: http://www.jdom.org/downloads/index.html
Apa kode penulis di sini adalah menggunakan Java untuk membuat XML dan membaca XML, yang hanya digunakan sebagai pengantar catatan.
2. Operasi
Unduh paket JDOM, unzip file jdom-2.0.6.jar, jdom-2.0.6-javadoc.jar, dan impor paket ke folder lib. (Catatan, jika ada kesalahan, impor semua paket di JDom)
Contoh 1: Buat file xml menggunakan jdom dengan nama orang.xml
Buat Kelas Baru Careatejdom
Paket com.book.jdom; impor java.io.filenotfoundException; impor java.io.fileoutputStream; impor java.io.ioexception; impor org.jdom2.document; impor org.jdom2.element; impor org.jdom2.output.format; impor org.jdom.outpom. static void main (string [] args) {// mendefinisikan elemen elemen orang, siswa; orang = elemen baru ("orang"); student = elemen baru ("siswa"); // Setel atribut student.setAttribute ("name", "Zhang san"); Student.setAttribute ("Gaji", "8000"); // Setel teks. Dokumen DOC = Dokumen baru (orang); // Baca format dan tetapkan ke format Format saat ini = format.getCompactFormat (); // inisialisasi format format saat ini.setencoding ("UTF-8"); // setel XML Facat.setIndent (""); // Bangun XML FACH FACKORY TO FACAT. " XMLOutputter(format);try {//Send the written text to the factory, and create a file output stream to output the data xmlout.output(doc, new FileOutputStream("people.xml"));System.out.println("Success!");} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printstacktrace ();} catch (ioException e) {// toddo Auto-generated catch blocke.printstacktrace ();}}/*hasil berjalan: <? xml versi = "1.0" encoding = "UTF-8"?> <People> <name student = "zhang" "8000 =" 8000 "?Contoh 2: Gunakan JDom untuk Parse People.xml File
Buat kelas readxml baru
Paket com.book.jdom; impor java.io.ioException; impor java.util.list; impor org.jdom2.document; impor org.jdom2.element; impor org.jdom2.jdomexception; impor org.jdom2.input.saxbuilder;//baca people.xml dokumen public class public document. builder parses xmlSAXBuilder sax = new SAXBuilder();//Create a document to accept data Document doc;try {//Get people.xml document doc = sax.build("people.xml");//Get root node Element people = doc.getRootElement();//Get node data under the root node List<Element> list = people.getChildren(); untuk (int i = 0; i <list.size (); i ++) {element e = list.get (i); // Dapatkan atribut value system.out.println ("name:"+e.getAttributeValue ("name")+gaji: "+e.getattributeValue (" gaji "));//mendapatkan nilai teks. (JDomException e) {e.printstacktrace ();} catch (ioException e) {e.printstacktrace ();}}}/** Hasil menjalankan:* Nama: Zhang San Gaji: 8000 hehe**Parsing xml
Metode untuk memperoleh nilai atribut yang berbeda dari beberapa nama tag yang sama menggunakan jdom <? Xml version = "1.0" encoding = "UTF-8"?> <Configuration> <Key Name = "China"> <value name = "TextKey"> China </ value> <value name = "Enabled"> true </value> <value name = "photoidwidth"> 38phot = 38photoid "> true </value> <value name =" photoidwidth "> 38photeoid Name = "PhotoidHeight"> 38 </value> <Key name = "Adult"> <value name = "crownpercent"> 0.10 </value> <value name = "headpercent"> 0.60AdulLeDeadpercent </setile> </key name = "Child"> <value name = "crownpercent"> 0.10 </value> </value name = "header" <value = "crownpercent"> 0.10 </value name = "name =" 0. 6.6 </Key> <Key Name="Australia"> <Value Name="TextKey">Australia</Value> <Value Name="Enabled">true</Value> <Value Name="PhotoIDWidth">35PhotoIDWidth</Value> <Value Name="PhotoIDHeight">45</Value> <Key Name="Adult"> <Value Name="CrownPercent">0.061</Value> <Value Name="HeadPercent">0.756"Adult"HeadPercent</Value> </Key> <Key Name="Child"> <Value Name="CrownPercent">0.072</Value> <Value Name="HeadPercent">0.711ChildHeadPercent</Value> </Key> <Key Name="Austria"> <Value Name="TextKey">Austria</Value> <Value Name="Enabled">true</Value> <Nilai Nama = "PhotoidWidth"> 35PhotoToidWidth </ value> <value name = "photoidHeight"> 45 </value> <Key name = "Adult"> <value name = "crownpercent"> 0.064 </value> <value name = "headpercent"> 0.744444444444444444444444444444444444444. Name = "CrownperCent"> 0.078 </value> <value name = "headpercent"> 0.689ChildHeadPerCent </ value> </yyy> </yyy> </configuration> Paket input; impor java.io.list; impor. org.jdom.jdomexception; impor org.jdom.input.saxbuilder; kelas publik readxml { / ** * @param args * / public static void main (string [] args) melempar jdomexception, ioException {saxbuilder sb = saxbuber baru ();); // Bangun dokumen dokumen dokumen dokumen = sb.build (test.class.getClassLoader (). GetResourceAsstream ("nation.xml")); // Dapatkan elemen root root root = doc.getrooteLement (); // Temukan <Konfiguration> -> <yyy> daftar <sement> daftar = root.getChildren ("key"); Daftar <sement> anak -anak = new ArrayList <sement> (); Daftar <sement> childrens = new ArrayList <sement> (); untuk (int i = 0; i <list.size (); i ++) {element element = (element) list.get (i); System.out.print (element.getAttributeValue ("name")); // Temukan <Configuration> -> <Y key> -> <value> anak -anak = element.getChildren ("value"); untuk (int j = 0; j <children.size (); j ++) {elemen elementchildren = (elemen) children.get (j); // Temukan <Configuration> -> <yyy> -> <value name = "photoidwidth"> if (elementchildren.getAttributeValue ("name"). Equals ("PhotoidWidth")) {// Get <Configuration> -> <yyy> -> <value = "photoidwidth"> nilai atribute nilai atribut System.out.print ("<-----------------" "+ElementChildren.getAttributeValue (" Name ")); // Dapatkan konten <Configuration>-> <yyy>-> <value name =" photoidwidth "> tag System.out.print (", "+elementchildren.gettext ();}}}}}}}}}}}} <Key> anak -anak = element.getChildren ("Key"); untuk (int j = 0; j <children.size (); j ++) {elementchildren = (elemen) anak -anak. -> <Key> -> <Key Name = "Child"> -> <value> childrens = elementchildren.getchildren ("value"); if (elementchildrens.getAttributeValue ("name"). Equals ("headpercent")) {System.out.println ("<----------->"+elementchildrens.getText ()); }}}}} }} 打印结果 : China <---------> Photoidwidth, 38photoidwidth <---------> 0.60ChildHeadPecentAustralia <--------- fotoidwidth, 35photoidwidth <--------- 0.711ChildHeadscentaustria <-----> Photoidwidth, 35photoidDi atas adalah metode menggunakan JDOM untuk parse XML di Java Web yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!