Menggunakan XML dengan Java
XML (Extensible Markup Language) adalah format yang digunakan untuk menyimpan dan mentransfer data. Dalam tutorial ini, kita akan membahas cara menggunakan XML dalam program Java secara detail.
1. Apa itu XML?
XML adalah format teks yang digunakan untuk menyimpan data dalam struktur hirarki. XML digunakan dalam berbagai aplikasi untuk konfigurasi, pengiriman data, dan penyimpanan data.
2. Mendukung XML di Java
Java menyediakan beberapa pustaka untuk membuat dan memanipulasi XML, antara lain:
- JAXP (Java API for XML Processing): Untuk parsing XML.
- DOM (Document Object Model): Untuk representasi XML dalam bentuk pohon.
- SAX (Simple API for XML): Untuk parsing XML secara berurutan.
- StAX (Streaming API for XML): Untuk parsing XML secara streaming.
3. Contoh Menggunakan XML dengan JAVA
3.1. Membaca XML dengan DOM
Berikut adalah contoh cara membaca file XML menggunakan DOM:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;
public class ReadXML {
public static void main(String argv[]) {
try {
File inputFile = new File("data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
System.out.println("Root element: " + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("student");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Student id: " + eElement.getAttribute("id"));
System.out.println("First Name: " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
System.out.println("Last Name: " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("Age: " + eElement.getElementsByTagName("age").item(0).getTextContent());
System.out.println("----------------------------");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.2. Menulis XML dengan DOM
Berikut adalah contoh cara membuat dan menulis file XML menggunakan DOM:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class WriteXML {
public static void main(String[] args) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
// root element
Element rootElement = doc.createElement("students");
doc.appendChild(rootElement);
// student element
Element student = doc.createElement("student");
student.setAttribute("id", "1");
rootElement.appendChild(student);
// firstname element
Element firstName = doc.createElement("firstname");
firstName.appendChild(doc.createTextNode("John"));
student.appendChild(firstName);
// lastname element
Element lastName = doc.createElement("lastname");
lastName.appendChild(doc.createTextNode("Doe"));
student.appendChild(lastName);
// age element
Element age = doc.createElement("age");
age.appendChild(doc.createTextNode("25"));
student.appendChild(age);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("output.xml"));
transformer.transform(source, result);
System.out.println("File saved!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Kesimpulan
Dalam tutorial ini, kita telah membahas cara menggunakan XML dalam Java, termasuk membaca dan menulis XML menggunakan DOM. Anda bisa mengeksplorasi lebih lanjut menggunakan pustaka lain seperti SAX dan StAX sesuai dengan kebutuhan aplikasi Anda.