Java:
การทำงานกับ XML

วิธีการ:

Java มี API เช่น DOM (Document Object Model), SAX (Simple API for XML), และ StAX (Streaming API for XML) สำหรับทำงานกับ XML นี่คือตัวอย่างของ DOM ในการแยกวิเคราะห์ไฟล์ XML:

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class XmlParser {
    public static void main(String[] args) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document doc = builder.parse("data.xml");
            
            doc.getDocumentElement().normalize();
            NodeList nodeList = doc.getElementsByTagName("employee");
            
            for (int i = 0; i < nodeList.getLength(); i++) {
                Element element = (Element) nodeList.item(i);
                System.out.println("Name: " + element.getElementsByTagName("name").item(0).getTextContent());
                System.out.println("Age: " + element.getElementsByTagName("age").item(0).getTextContent());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

สมมติว่า data.xml มีลักษณะดังนี้:

<employees>
    <employee>
        <name>Jane Doe</name>
        <age>30</age>
    </employee>
    <employee>
        <name>John Doe</name>
        <age>40</age>
    </employee>
</employees>

ผลลัพธ์จะเป็น:

Name: Jane Doe
Age: 30
Name: John Doe
Age: 40

ดำดิ่งลงไป

XML เป็นที่นิยมใช้ตั้งแต่ปลายยุค ‘90, มอบวิธีการที่มีโครงสร้างและยืดหยุ่นในการแลกเปลี่ยนข้อมูลข้ามระบบที่แตกต่างกัน แม้ว่า JSON จะได้รับความนิยมมากขึ้นสำหรับ web APIs ใหม่ๆ เนื่องจากไวยากรณ์ที่ง่ายกว่าและการรวมตัวกับ JavaScript อย่างแน่นหนา แต่ XML ยังคงถูกใช้อย่างแพร่หลายในสภาพแวดล้อมขององค์กร, บริการเว็บที่ใช้ SOAP, และมาตรฐานเอกสารเช่น Office Open XML สำหรับ Microsoft Office

เมื่อพูดถึงการแยกวิเคราะห์ XML ใน Java, DOM API เหมาะสำหรับเอกสารขนาดเล็ก: มันเป็นแบบต้นไม้และอนุญาตให้เข้าถึงโครงสร้าง XML ในหน่วยความจำได้อย่างเต็มที่ อย่างไรก็ตามสำหรับไฟล์ขนาดใหญ่ มันอาจใช้หน่วยความจำมาก SAX และ StAX เป็นมิตรกับหน่วยความจำมากขึ้น เนื่องจากเป็นแบบขับเคลื่อนโดยเหตุการณ์และแบบสตรีมตามลำดับ แต่อาจไม่สะดวกสำหรับการนำทางโครงสร้าง XML

สำหรับการสร้างหรือการแก้ไข XML, Java ยังมีแพคเกจ javax.xml.transform และ javax.xml.bind (JAXB) JAXB เป็นส่วนหนึ่งของ Java SE จนถึงเวอร์ชัน 10, หลังจากนั้น, มันกลายเป็นไลบรารีแยกต่างหากเนื่องจากการลบโมดูล Java EE ออกจาก Java SE มันเป็นวิธีการที่ขับเคลื่อนโดย annotation ในการ serialize อ็อบเจกต์ Java เป็น XML และทำกลับกัน

ดูเพิ่มเติม

ตรวจสอบแหล่งข้อมูลเหล่านี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานกับ XML ใน Java: