Đọc tập tin XML sử dụng DOM

878

DOM là tập hợp những interface giúp chúng ta có thể dễ dàng truy cập và chỉnh sửa cấu trúc, nội dung của một tập tin XML. Trong bài viết này, chúng ta sẽ tìm hiểu làm thế nào để đọc tập tin XML sử dụng DOM các bạn nhé!

DOM interfaces

DOM định nghĩa một vài Java interfaces, bên dưới là một số interface mà chúng ta thường dùng khi làm việc với nó:

  • Document
  • Node
  • Element
  • Attr
  • Text

Mình sẽ giải thích từng interface này khi chúng ta đi vào một ví dụ cụ thể.

Ví dụ đọc tập tin XML sử dụng DOM

Để các bạn dễ hình dung, mình sẽ tạo và làm việc với một project Maven để minh họa cho bài viết này.

Mình có project như sau:

dom-parser-1

Tập tin XML chúng ta cần đọc là students.xml có nội dung như sau:

Tập tin này chứa thông tin của 2 sinh viên bao gồm tên (name), mã sinh viên (code) và tuổi (age) của mỗi sinh viên. Mỗi sinh viên sẽ được đánh số thứ tự thông qua thuộc tính n0.

OK, giờ chúng ta bắt đầu đọc tập tin này các bạn nhé!

Đầu tiên, để có thể đọc được tập tin students.xml, chúng ta cần phải khởi tạo đối tượng File cho tập tin này:

Tiếp theo, chúng ta cần khởi tạo đối tượng Document chứa thông tin của tập tin XML từ đối tượng File đã được tạo ra ở trên

Để đọc tập tin XML với DOM, chúng ta sẽ đọc từng thẻ của nó từ ngoài vào trong theo thứ tự phân cấp của chúng.

Trong tập tin students.xml thì thẻ students là thẻ ngoài cùng nhất, hay còn gọi là root element. Để đọc được thẻ này chúng ta dùng phương thức sau:

Trong DOM, một thẻ được xác định là một Element.

Bây giờ, chúng ta đã có thông tin của thẻ students rồi, để lấy thông tin của các thẻ student, chúng ta sẽ dùng thẻ students để lấy chúng.

Đối tượng NodeList sẽ chứa thông tin 2 thẻ student có trong tập tin XML. Bây giờ chúng ta sẽ đi qua từng thẻ để đọc thông tin của chúng:

Một Node là một nút trong cây DOM của chúng ta. Chúng ta cần đưa nó về đối tượng Element để sử dụng.

OK, giờ chúng ta đã có đối tượng chứa thông tin của các thẻ student. Nhiệm vụ bây giờ là chúng ta đọc chúng thôi.

Để đọc được thuộc tính số thứ tự, chúng ta chỉ cần làm như sau:

với n0 là tên của thuộc tính.

Bởi vì bây giờ chúng ta đang đọc thẻ student và mỗi thẻ student chỉ có một thẻ con cho tên, mã sinh viên và tuổi nên chúng ta có thể đọc những thông tin này như sau:

Thẻ tên:

Thẻ mã sinh viên:

Thẻ tuổi:

OK, chúng ta đã hoàn thành việc đọc tập tin students.xml, các bạn có thể tham khảo đầy đủ code như sau:

Techtalk talk via huongdanjava

CHIA SẺ