CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Trang chủHướng dẫnTìm hiểu các trình phân tích XML trong Java: DOM, SAX, StAX, JAXB
Java

Tìm hiểu các trình phân tích XML trong Java: DOM, SAX, StAX, JAXB

CyStack blog 6 phút để đọc
CyStack blog01/08/2025
Locker Avatar

Bao Tran

Web Developer

Locker logo social
Reading Time: 6 minutes

Trình phân tích XML trong Java (Java XML Parser) được sử dụng để xử lý dữ liệu XML. XML là một công nghệ được sử dụng rộng rãi để vận chuyển hoặc lưu trữ dữ liệu. Đó là lý do tại sao có nhiều công cụ phân tích XML bằng Java có sẵn.

trình phân tích XML trong Java

Trình phân tích XML trong Java

Một số trình phân tích cú pháp XML thường được sử dụng bao gồm:

  • DOM Parser
  • SAX Parser
  • StAX Parser
  • JAXB

Ngoài ra, còn có các API khác cũng có sẵn để xử lý XML trong Java, ví dụ như JDOM và JiBX. Hướng dẫn về Java XML parser này nhằm mục đích khám phá các loại API xử lý XML khác nhau và tìm hiểu một số tác vụ phổ biến mà chúng ta cần thực hiện với XML như đọc, ghi và chỉnh sửa.

Trình phân tích XML – DOM

DOM Parser là Java XML Parser dễ học nhất. DOM Parser tải toàn bộ file XML vào bộ nhớ, và chúng ta có thể duyệt qua từng node để phân tích XML. DOM Parser phù hợp với các file nhỏ, nhưng khi kích thước file tăng lên, nó sẽ hoạt động chậm và tiêu thụ nhiều bộ nhớ hơn.

  1. Đọc file XML: Bài viết này trình bày cách sử dụng DOM Parser để phân tích file XML thành đối tượng (Object).
  2. Ghi file XML: Bài viết này giải thích cách sử dụng DOM Parser để ghi dữ liệu đối tượng vào file XML.
  3. Chỉnh sửa file XML: DOM Parser cũng có thể được dùng để chỉnh sửa dữ liệu XML. Bài viết này trình bày cách thêm các phần tử (elements), xóa các phần tử, chỉnh sửa giá trị phần tử, và chỉnh sửa thuộc tính (attributes) trong tài liệu XML bằng DOM Parser.

Trình phân tích XML – SAX

Java SAX Parser cung cấp API để phân tích các tài liệu XML. SAX Parser khác với DOM Parser vì nó không tải toàn bộ XML vào bộ nhớ mà đọc tài liệu XML theo trình tự. Đây là một parser dựa trên sự kiện (event-based parser), và chúng ta cần triển khai lớp Handler của riêng mình với các phương thức callback để phân tích file XML. Nó hiệu quả hơn DOM Parser đối với các file XML lớn về thời gian và mức độ sử dụng bộ nhớ.

  1. Đọc file XML: Tìm hiểu cách tạo lớp Callback Handler để đọc file XML thành danh sách các đối tượng bằng SAX Parser.

Trình phân tích XML – StAX

Java Streaming API for XML (Java StAX) cung cấp triển khai để xử lý XML trong Java. StAX bao gồm hai bộ API: cursor based API và iterator based API. Tôi đã trình bày chi tiết về Java XML parser này trong các bài đăng khác.

  1. Đọc file XML bằng StAX Iterator API: Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách đọc XML lặp đi lặp lại bằng Java StAX (XMLEventReader).
  2. Ghi file XML bằng StAX Iterator API: Trong hướng dẫn này, chúng ta sẽ xem cách chúng ta có thể ghi file XML trong Java bằng API dựa trên Iterator của StAX (XMLEventWriter).
  3. Đọc file XML bằng StAX Cursor API: Bài viết này trình bày cách sử dụng StAX Cursor API (XMLStreamReader) để đọc dữ liệu XML thành đối tượng.
  4. Ghi file XML bằng StAX Cursor API: Java StAX Cursor API rất đơn giản trong việc tạo XML và xuất nó. Chúng ta cần tạo đối tượng XMLStreamWriter và ghi dữ liệu vào đó. Hướng dẫn này giải thích chi tiết với ví dụ.

Trình phân tích XML – JDOM

JDOM cung cấp một API Java XML parser tuyệt vời để đọc, chỉnh sửa và ghi tài liệu XML một cách dễ dàng. JDOM cung cấp các lớp wrapper để chọn triển khai cơ bản của bạn từ SAX Parser, DOM Parser, STAX Event Parser và STAX Stream Parser. Lợi ích của việc sử dụng JDOM là bạn có thể dễ dàng chuyển đổi từ SAX sang DOM sang STAX Parser, bạn có thể cung cấp các phương thức factory để cho phép ứng dụng khách chọn triển khai.

  1. JDOM Đọc file XML: Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách đọc file XML thành đối tượng bằng JDOM XML Parser.
  2. JDOM Ghi file XML: Trong hướng dẫn này, chúng ta sẽ học cách ghi file XML trong Java bằng JDOM. JDOM Document cung cấp các phương thức để dễ dàng tạo các phần tử và thuộc tính. Lớp XMLOutputter có thể được dùng để ghi tài liệu vào bất kỳ đối tượng OutputStream hoặc Writer nào.
  3. JDOM Chỉnh sửa file XML: JDOM cung cấp một cách rất gọn gàng để thao tác với các file XML, sử dụng JDOM rất dễ dàng và mã trông rõ ràng, dễ đọc. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thêm phần tử, xóa phần tử, chỉnh sửa giá trị phần tử và chỉnh sửa giá trị thuộc tính.

Trình phân tích XML – JAXB

Java Architecture for XML Binding (JAXB) cung cấp API để dễ dàng chuyển đổi đối tượng sang XML và XML sang đối tượng. JAXB được phát triển như một dự án riêng biệt nhưng nó đã được sử dụng rộng rãi và cuối cùng trở thành một phần của JDK trong Java 6.

  1. Hướng dẫn JAXB: Sử dụng JAXB rất dễ dàng và nó sử dụng các chú thích (annotations). Chúng ta cần chú thích Java Object để cung cấp hướng dẫn tạo XML và sau đó chúng ta phải tạo Marshaller để chuyển đổi đối tượng sang XML. Unmarshaller được dùng để chuyển đổi XML sang Java Object. Trong hướng dẫn này, chúng ta sẽ tìm hiểu các chú thích JAXB được sử dụng rộng rãi nhất và cách chuyển đổi Java Object sang XML (Marshalling) và XML sang Java Object (Unmarshalling).

Trình phân tích XML – JiBX

JiBX là một framework rất mạnh mẽ để chuyển đổi dữ liệu XML sang đối tượng Java và ngược lại. Nó rất hữu ích trong các ứng dụng tích hợp mà XML là định dạng để truyền dữ liệu, ví dụ: Web Services và Legacy Systems Integration dựa trên Message Oriented Model (MOM).

  1. Hướng dẫn JiBX: Có nhiều framework có sẵn để chuyển đổi XML như JAXB và XMLBeans nhưng JiBX khác biệt trong cách tiếp cận quy trình ràng buộc và chuyển đổi XML. JiBX thực hiện các tác vụ này thông qua các lớp tiện ích được tạo tại thời điểm biên dịch thông qua các tập lệnh ant. Cách tiếp cận này giúp giảm thời gian xử lý bằng cách chuyển từ quy trình hai bước truyền thống với các parser khác sang một bước duy nhất.

Trình phân tích XML – XPath

XPath cung cấp cú pháp để xác định một phần của tài liệu XML. XPath Expression là một ngôn ngữ truy vấn để chọn một phần của tài liệu XML dựa trên chuỗi truy vấn. Sử dụng XPath Expressions, chúng ta có thể tìm thấy các node trong bất kỳ tài liệu XML nào thỏa mãn chuỗi truy vấn.

  1. Hướng dẫn XPath: Gói javax.xml.xpath cung cấp hỗ trợ XPath trong Java. Để tạo XPathExpression, API XPath cung cấp các phương thức factory. Trong hướng dẫn này, chúng ta sẽ sử dụng ngôn ngữ truy vấn XPath để tìm các phần tử thỏa mãn tiêu chí nhất định.

Một số tác vụ phụ với Java XML parser

  1. Tạo XML mẫu từ XSD trong Eclipse: Nếu bạn làm việc trên web services, hẳn bạn đã sử dụng XSD và để kiểm tra web service, bạn cần tạo XML từ file XSD. Eclipse cung cấp một cách rất dễ dàng để tạo XML từ XSD.
  2. Xác thực XML so với XSD: Java XML Validation API có thể được dùng để xác thực XML so với một XSD. Lớp javax.xml.validation.Validator được sử dụng trong hướng dẫn này để xác thực file XML so với file XSD.
  3. Java XML Property File: Thông thường, chúng ta lưu trữ các tham số cấu hình cho các ứng dụng Java trong một file thuộc tính. Trong Java, file thuộc tính có thể là một file thuộc tính thông thường với các cặp khóa-giá trị hoặc nó cũng có thể là một file XML. Trong ví dụ này, chúng ta sẽ học cách ghi file XML thuộc tính và sau đó đọc các thuộc tính từ các file XML thuộc tính.
  4. SOAP XML: SOAP là một giao thức truyền tải dựa trên XML. SOAP là viết tắt của Simple Object Access Protocol. SOAP là một cơ chế nhẹ để trao đổi thông tin có cấu trúc và được định kiểu. Vì nó dựa trên XML nên nó độc lập với ngôn ngữ và nền tảng. Trong hướng dẫn này, bạn sẽ tìm hiểu về SOAP XML và cách chúng ta có thể tạo nó bằng phần mềm Liquid XML Studio.
  5. Định dạng tài liệu XML: Một lớp tiện ích với các phương thức để in XML đẹp (pretty printing) và chuyển đổi XML Document sang String và String sang XML Document.
  6. Chuyển đổi Document sang String và String sang Document: Đôi khi khi lập trình trong Java, chúng ta nhận được một String thực sự là một XML và để xử lý nó, chúng ta cần chuyển đổi nó sang XML Document (org.w3c.dom.Document). Ngoài ra, cho mục đích gỡ lỗi hoặc để gửi đến một hàm khác, chúng ta có thể cần chuyển đổi đối tượng Document sang String. Hai phương thức tiện ích để chuyển đổi String sang XML Document và XML Document sang String.

Tôi sẽ tiếp tục cập nhật thêm các bài viết hướng dẫn về các trình phân tích XML trong Java tại đây khi có bài mới. Đừng quên lưu lại trang này để tiện tham khảo khi cần bạn nhé.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất