Hướng dẫn sử dụng Java JDOM2 phân tích tài liệu XML
Công ty Vĩnh Cửu tuyển dụng lập trình viên Java

TÀI LIỆU ĐANG ĐƯỢC CẬP NHẬP 50%.

1- Giới thiệu

JDOM là một mô hình XML trong bộ nhớ có thể được sử dụng để đọc , viết , tạo và chỉnh sửa các tài liệu XML . JDOM cũng tương tự như DOM trong mà cả hai đều cung cấp một mô hình tài liệu XML trong bộ nhớ , nhưng trong khi DOM được thiết kế để làm việc như nhau trong nhiều ngôn ngữ (C, C + +, ECMAScript , Java , JScript , Lingo , PHP, PLSQL , và Python [ http://www.w3.org/DOM/Bindings ] ) , JDOM được thiết kế chỉ dành cho Java và sử dụng các tính năng Java cụ thể tự nhiên mà mô hình DOM tránh . Vì lý do này JDOM cố ý không thực hiện theo các tiêu chuẩn DOM w3c . JDOM không phải là một phân tích cú pháp XML nhưng nó có thể sử dụng một SAX, Stax hoặc phân tích cú pháp DOM để xây dựng các tài liệu JDOM . Phiên bản JDOM JDOM từ 2.0.0 ( JDOM2 ) sử dụng tất cả các tính năng ngôn ngữ mẹ đẻ của Java6 và sau đó như Generics , Enums , var-args , kiểu trả về đồng biến (co-variant), v.. v..

Trong hướng dẫn được liệt kê dưới đây chúng tôi cung cấp cho bạn với các ví dụ của tất cả các chức năng quan trọng của JDOM2 . Tuy nhiên trước khi bạn bắt đầu thấy các ví dụ, nó sẽ là một ý tưởng tốt để hiểu các gói chính là một phần của JDOM2 và các chức năng mà mỗi gói cung cấp . Hướng dẫn đầu tiên trong loạt bài này cung cấp một giới thiệu về cấu trúc gói cùng với các lớp quan trọng trong mỗi gói. Các hướng dẫn tiếp theo là những ví dụ cho mỗi chức năng quan trọng đó.

2- Thư viện

Không giống với DOM vốn có sẵn trong JDK, JDOM bạn phải download thư viện về để sử dụng:
Bạn có thể download tại trang chủ của JDOM tại:
Hoặc đơn giản là download từ Maven Repository:

3- Bắt đầu ví dụ

Đây là hình ảnh của Project sau khi hoàn thành:
department-datas.xml
<?xml version="1.0"?>
<department>

  <employee>
      <empNo>E01</empNo>
      <empName>KING</empName>
      <hireDate>17-11-1981</hireDate>
      <salary>100000</salary>
  </employee>

  <employee>
      <empNo>E02</empNo>
      <empName>JONES</empName>
      <hireDate>02-04-1981</hireDate>
      <salary>200000</salary>
  </employee>

</department>
ReadXMLFile.java
package org.o7planning.tutorial.jdom2;

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

public class ReadXMLFile {
   public static void main(String[] args) {

       SAXBuilder builder = new SAXBuilder();
       File xmlFile = new File("department-datas.xml");
       
       System.out.println("Parsing FILE: "+ xmlFile.getAbsolutePath());

       try {

           Document document = (Document) builder.build(xmlFile);
           Element rootNode = document.getRootElement();
           List<Element> list = rootNode.getChildren("employee");

           for (int i = 0; i < list.size(); i++) {

               Element node = (Element) list.get(i);
               
               System.out.println(" ------ ");
               
               System.out.println("Emp No : " + node.getChildText("empNo"));
               
               System.out.println("Emp Name : " + node.getChildText("empName"));
               
               System.out.println("Hire Date : " + node.getChildText("hireDate"));
               
               System.out.println("Salary : " + node.getChildText("salary"));

           }

       } catch (IOException e) {
           System.out.println(e.getMessage());
       } catch (JDOMException e) {
           System.out.println(e.getMessage());
       }
   }
}
Kết quả sau khi chạy class ReadXMLFile:

4- So sánh một số khác biệt giữa JDOM và DOM

TODO