VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java Collections

Java XML

Java XML Java DOM Parser – đọc, tạo, sửa tài liệu XML Java SAX Parser – đọc tài liệu XML Java StAX Parser – đọc tài liệu XML

Java JSON

Ví dụ JSON với Java – json.simple JSON.simple – phân tích cú pháp JSON trong Java Ví dụ JSON với Java – Jackson Jackson – phân tích cú pháp JSON trong Java
Java AWT Java Swing Java I/O Ví Dụ Java I/O Java JDBC Các Tính Năng Mới Trong Java Lập Trình Mạng Với Java Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Java StAX Parser - đọc tài liệu XML


Java SAX Parser – đọc tài liệu XML
Swing trong Java – Giới thiệu Java Swing

Bài này viettuts.vn hướng dẫn bạn sử dụng trình phân tích cú pháp XML Java StAX Parser - đọc tài liệu XML.

StAX là viết tắt của Streaming API for XML và StAX Parser khác với DOM Parser. StAX tương tự như SAX, nhưng có 2 sự khác biệt như sau:

  • StAX là một API PULL, trong khi SAX là một API PUSH. Nó có nghĩa là trong trường hợp StAX parser, một ứng dụng khách cần yêu cầu StAX parser nhận thông tin từ XML bất cứ khi nào nó cần. Nhưng trong trường hợp SAX parser, một ứng dụng máy khách được yêu cầu để lấy thông tin khi trình phân tích cú pháp SAX thông báo cho ứng dụng khách mà thông tin có sẵn.
  • StAX parser duy trì một con trỏ tại vị trí hiện tại trong tài liệu XML cho phép trích xuất nội dung có sẵn tại con trỏ trong khi trình phân tích cú pháp SAX tạo ra các sự kiện khi gặp một số dữ liệu nhất định.

XMLInputFactory và XMLStreamReader là hai lớp có thể được sử dụng để tải một tệp XML. Và khi chúng ta đọc tài liệu XML bằng cách sử dụng XMLStreamReader, các sự kiện được tạo ra dưới dạng các giá trị số nguyên và sau đó chúng được so sánh với các hằng số trong XMLStreamConstants để xác định sự kiện.


Nội dung chính

  • Ví dụ sử dụng StAX Parser - đọc tài liệu XML

Ví dụ sử dụng StAX Parser - đọc tài liệu XML

Ví dụ phân tích cú pháp XML bằng cách sử dụng trình phân tích cú pháp StAX:

File input.xml có nội dung như sau:

<?xml version = "1.0"?>
<class>
   <student id = "1">
      <firstname>Vinh</firstname>
      <lastname>Phan</lastname>
      <marks>85</marks>
   </student>
   
   <student id = "2">
      <firstname>Hoa</firstname>
      <lastname>Nguyen</lastname>
      <marks>95</marks>
   </student>
   
   <student id = "3">
      <firstname>Phu</firstname>
      <lastname>Tran</lastname>
      <marks>90</marks>
   </student>
</class>

Tạo lớp Student.java

package vn.viettuts.javaxml;

public class Student {
    private String id;
    private String firstName;
    private String lastName;
    private String marks;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getMarks() {
        return marks;
    }

    public void setMarks(String marks) {
        this.marks = marks;
    }

    @Override
    public String toString() {
        return "@Student, id=" + id + ", firstName=" + firstName 
                + ", lastName=" + lastName + ", marks=" + marks;
    }
}

Tạo lớp StAXExample.java

package vn.viettuts.javaxml;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;

public class StAXExample {

    public static void main(String[] args) {
        List<Student> listStudents;
        try {
            listStudents = StAXExample.readListStudents();

            // hiển thị các đối tượng student ra màn hình
            for (Student student : listStudents) {
                System.out.println(student.toString());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (XMLStreamException e) {
            e.printStackTrace();
        }
    }

    public static List<Student> readListStudents()
            throws XMLStreamException, FileNotFoundException {
        List<Student> listStudents = new ArrayList<>();
        Student student = null;
        String tagContent = null;

        File inputFile = new File("D:\\xml\\input.xml");
        InputStream is = new FileInputStream(inputFile);
        XMLInputFactory factory = XMLInputFactory.newInstance();
        XMLStreamReader reader = factory.createXMLStreamReader(is);

        // duyệt các phần tử student
        while (reader.hasNext()) {
            int event = reader.next();

            switch (event) {
            case XMLStreamConstants.START_ELEMENT:
                // tạo đối tượng student
                if ("student".equals(reader.getLocalName())) {
                    student = new Student();
                    student.setId(reader.getAttributeValue(0));
                }
                break;

            case XMLStreamConstants.CHARACTERS:
                // đọc nội dung của thẻ hiện tại
                tagContent = reader.getText().trim();
                break;

            case XMLStreamConstants.END_ELEMENT:
                switch (reader.getLocalName()) {
                case "student":
                    listStudents.add(student);
                    break;
                case "firstname":
                    student.setFirstName(tagContent);
                    break;
                case "lastname":
                    student.setLastName(tagContent);
                    break;
                case "marks":
                    student.setMarks(tagContent);
                    break;
                }
                break;
            }
        }
        return listStudents;
    }
}

Kết quả:

@Student, id=1, firstName=Vinh, lastName=Phan, marks=85
@Student, id=2, firstName=Hoa, lastName=Nguyen, marks=95
@Student, id=3, firstName=Phu, lastName=Tran, marks=90

Java SAX Parser – đọc tài liệu XML
Swing trong Java – Giới thiệu Java Swing

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Processor trong XMLParser trong XMLEditor trong XMLSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml