👉 TL;DR: Parsing = biến text/dữ liệu thô → cấu trúc có ý nghĩa để xử lý.

1. Khái niệm cơ bản

  • Parsing là quá trình phân tích một chuỗi dữ liệu (thường là văn bản, mã lệnh, hoặc dữ liệu có cấu trúc) dựa trên một tập quy tắc (ngữ pháp) để hiểu được cấu trúc và ý nghĩa của nó.
  • Nói cách khác: từ một đoạn dữ liệu thô → parsing sẽ biến nó thành cấu trúc dữ liệu có tổ chức mà chương trình có thể xử lý dễ dàng.

2. Bản chất

  • Input: dữ liệu chuỗi (code, file JSON, log, HTML, gói mạng…)
  • Parser: bộ phân tích dựa trên quy tắc/ngữ pháp.
  • Output: cấu trúc dữ liệu (thường là cây cú pháp – parse tree hoặc abstract syntax tree).

Parsing chính là cầu nối từ “dữ liệu text” sang “cấu trúc có ý nghĩa để máy tính hiểu và xử lý”.


3. Ví dụ

🔹 Lập trình (compiler/interpreter)

  • Khi biên dịch code C, trình biên dịch phải parsing đoạn if (x > 5) { y = 10; }.
  • Kết quả parsing là một cây biểu diễn:

    • If-statement
    • Điều kiện: x > 5
    • Thân lệnh: y = 10

🔹 Dữ liệu JSON Chuỗi JSON:

{ "name": "Thang", "age": 21 }

→ Sau khi parsing, ta có thể truy cập bằng code:

data["name"]  # "Thang"
data["age"]   # 21

🔹 Trình duyệt web

  • Trình duyệt nhận HTML → parsing thành DOM Tree để hiển thị trang.alt text
  • Nhận CSS → parsing thành CSSOM Tree để áp style.

🔹 Log analysis trong Security

  • Parser sẽ tách log thô:
192.168.1.2 - - [18/Sep/2025:13:05:22] "GET /login.php HTTP/1.1" 200

→ Thành cấu trúc:

  • IP: 192.168.1.2
  • Thời gian: 18/Sep/2025:13:05:22
  • Method: GET
  • Resource: /login.php
  • Status: 200