Chuyển đổi nội dung tập tin XML sang đối tượng Java sử dụng JAXB

JAXB là từ viết tắt của chữ Java Architecture for XML Binding, nó là một thư viện sử dụng các annotation để chuyển đổi các đối tượng Java sang các nội dung XML và ngược lại. Trong bài viết này, mình sẽ hướng dẫn các bạn chuyển đổi nội dung tập tin XML sang đối tượng Java sử dụng JAXB.

Mình sẽ bắt đầu với một project như sau:

Chuyển đổi nội dung tập tin XML sang đối tượng Java sử dụng JAXB

Chúng ta có tập tin XML với nội dung đơn giản như sau:

Và một lớp Student sẽ được định nghĩa sử dụng các JAXB annotation như sau:

Với JAXB, chúng ta thường dùng 2 hai annotation cơ bản, đó là:

  • @XmlRootElement: annotation này chỉ rõ thẻ ngoài cùng nhất của tập tin XML là gì và do đó nó được khai báo trên đầu của một lớp.
  • @XmlElement: dùng để khai báo một thuộc tính của đối tượng là một thẻ của tập tin XML.

Trong ví dụ trên, bên trong thẻ student, chúng ta có 3 thẻ là name, age và code. Do đó, đối tượng Student của chúng ta phải khai báo annotation cho 3 thuộc tính tương ứng.

OK, bây giờ chúng ta sẽ tiến hành chuyển đổi nội dung XML các bạn nhé!

Đầu tiên, chúng ta sẽ khởi tạo đối tượng JAXBContext với đối tượng cần chuyển đổi là Student.

Trong đối tượng JAXBContext này, nó có một phương thức để tạo ra đối tượng dùng để chuyển đổi nội dung XML sang đối tượng Java đó là Unmarshaller. Cụ thể như sau:

Và giờ các bạn có thể sử dụng phương thức unmarshal() trong đối tượng Unmarshaller cho mục đích của chúng ta rồi.

Có nhiều phương thức overloaded unmarshal() nhưng trong bài viết này chúng ta đang làm việc với tập tin nên mình sẽ tạo đối tượng File và truyền vào cho phương thức unmarshal().

Kết quả;

Chuyển đổi nội dung tập tin XML sang đối tượng Java sử dụng JAXB

Toàn bộ code:

5/5 - (1 bình chọn)

One thought on “Chuyển đổi nội dung tập tin XML sang đối tượng Java sử dụng JAXB

Add Comment