Trình Định Dạng & Kiểm Tra XML
Dán XML → Định dạng hoặc Rút gọn → Sao chép kết quả. Miễn phí, bảo mật, xử lý tại trình duyệt.
Các ký tự đặc biệt và thực thể XML tương ứng
Cách định dạng và phân tích XML trong các ngôn ngữ phổ biến
Nhấp để tải ví dụ vào ô nhập
XML là gì?
XML (Extensible Markup Language) là ngôn ngữ đánh dấu được thiết kế để lưu trữ và truyền tải dữ liệu có cấu trúc. Được phát triển bởi W3C và phát hành năm 1998, XML cho phép người dùng tự định nghĩa các thẻ riêng, tạo cấu trúc dữ liệu linh hoạt và có tính mô tả cao. Khác với HTML vốn tập trung vào hiển thị, XML tập trung vào mô tả nội dung dữ liệu.
XML được sử dụng rộng rãi trong cấu hình ứng dụng (.config, .xml), web services (SOAP/WSDL), RSS feeds, SVG graphics, văn bản có cấu trúc (DocBook, DITA), và hàng trăm format tiêu chuẩn ngành khác. Dù JSON đã trở nên phổ biến hơn cho API, XML vẫn là lựa chọn hàng đầu khi cần validation schema (XSD), namespaces, hoặc truy vấn phức tạp (XPath/XSLT).
Cách hoạt động của trình định dạng XML
Công cụ này sử dụng DOMParser tích hợp sẵn trong trình duyệt để phân tích cú pháp XML. Nếu XML hợp lệ, nó được chuyển đổi thành cây DOM, sau đó được serialize lại với thụt lề phù hợp. Nếu XML không hợp lệ, trình duyệt tạo một nút parsererror chứa thông tin lỗi chi tiết.
Quá trình định dạng gồm: (1) phân tích XML qua DOMParser, (2) serialize qua XMLSerializer, (3) tách các thẻ thành các dòng riêng biệt, (4) áp dụng thụt lề dựa trên cấp độ lồng nhau. Đối với rút gọn, tất cả khoảng trắng giữa các thẻ được loại bỏ.
XML và JSON: Khi nào dùng gì?
| Tiêu chí | XML | JSON |
|---|---|---|
| Cú pháp | Thẻ mở/đóng, thuộc tính | Ngoặc nhọn, ngoặc vuông |
| Schema | XSD, DTD, Schematron | JSON Schema |
| Truy vấn | XPath, XQuery, XSLT | JSONPath, jq |
| Comments | Hỗ trợ | Không hỗ trợ |
| Namespaces | Hỗ trợ đầy đủ | Không có |
| Kiểu dữ liệu | Tất cả đều là text | String, number, boolean, null |
| Dùng cho | Cấu hình, SOAP, SVG, RSS | REST API, lưu trữ NoSQL |
Quy tắc cú pháp XML quan trọng
- Thẻ phân biệt hoa/thường:
<Book>và<book>là hai thẻ khác nhau - Phải đóng mọi thẻ:
<item>...</item>hoặc tự đóng<item /> - Chỉ một phần tử gốc: Toàn bộ tài liệu phải được bọc trong một thẻ root duy nhất
- Thuộc tính phải có giá trị:
disabled="disabled", không dùngdisabledkhông giá trị - Escape ký tự đặc biệt: &, <, >, ", ' phải dùng entity references
- Lồng đúng thứ tự:
<a><b>...</b></a>đúng,<a><b>...</a></b>sai
Các lỗi phổ biến khi viết XML
- Thiếu thẻ đóng: Là lỗi phổ biến nhất — mọi thẻ mở đều cần thẻ đóng tương ứng
- Dùng ký tự đặc biệt không escape: Ký tự
&trong nội dung phải viết thành& - Khai báo XML sai vị trí:
<?xml ...?>phải là dòng đầu tiên, trước cả comment - Encoding không khớp: File lưu UTF-8 nhưng khai báo ISO-8859-1 gây lỗi parser
- Nhiều phần tử gốc: XML chỉ cho phép đúng 1 root element
Ứng dụng thực tế của XML
SVG (Scalable Vector Graphics): Định dạng đồ họa vector phổ biến nhất trên web. Mỗi file SVG là một tài liệu XML hợp lệ với các phần tử như <circle>, <path>, <text>. Định dạng XML giúp SVG có thể thao tác bằng CSS và JavaScript.
RSS/Atom Feeds: Chuẩn phân phối nội dung web. RSS 2.0 và Atom đều dùng XML để mô tả danh sách bài viết, podcast, và cập nhật — cho phép các ứng dụng đọc tin tự động lấy nội dung mới.
SOAP Web Services: Giao thức giao tiếp giữa các hệ thống doanh nghiệp. Mỗi request/response SOAP là một XML envelope chứa header và body. Dù REST đã phổ biến hơn, SOAP vẫn được dùng rộng rãi trong ngân hàng, bảo hiểm, và chính phủ.
Cấu hình ứng dụng: Maven (pom.xml), .NET (web.config, app.config), Android (AndroidManifest.xml), Spring Framework — tất cả đều dùng XML cho cấu hình. XML cho phép validation schema nghiêm ngặt, đảm bảo cấu hình luôn đúng format.
Giới thiệu về Chuyển đổi dữ liệu
Công cụ developer tự động hóa các phần lặp đi lặp lại của công việc phần mềm: format JSON, encode/decode Base64, decode JWT để xác minh claim của token, tạo UUID, format XML, diff cấu hình. Đây không phải tác vụ hào nhoáng, nhưng là các điểm nghẽn ngốn 10-15 phút nhiều lần mỗi ngày — cộng lại hàng giờ mỗi tuần. Chạy chúng trên tab trình duyệt sạch sẽ hơn vật lộn với phụ thuộc CLI hay extension IDE có thể gửi dữ liệu riêng tư của bạn cho bên thứ ba.
Vì sao nó quan trọng
Công cụ developer client-side nhanh về cơ bản quan trọng vì chúng được dùng với dữ liệu nhạy cảm. JWT token chứa danh tính người dùng. Payload Base64 có thể encode API key. JSON dump bao gồm bản ghi khách hàng. Nếu một 'công cụ developer' gửi input của bạn lên server để xử lý, bạn vừa rò rỉ production secret. Công cụ dev của ZestLab chạy 100% client-side không có network call nào sau khi load page — những gì bạn paste vẫn ở trong trình duyệt.
Riêng tư và an toàn
Tất cả công cụ developer ở đây chạy trong trình duyệt bằng JavaScript thuần. Không có 'decode server' hay 'format API' — JWT, JSON, payload encode của bạn được parse bởi code chạy trên laptop của bạn. Tự xác minh bằng DevTools trình duyệt → Network tab: bạn sẽ thấy không có request nào khi dùng bất kỳ công cụ nào. Đó là tiêu chuẩn chúng tôi giữ vì công cụ dev xử lý secret.
Thực hành tốt
- Không bao giờ paste JWT hay API token production vào BẤT KỲ công cụ online nào mà không xác minh chạy client-side (check tab Network)
- Dùng chế độ ẩn danh trình duyệt để decode một lần các payload nhạy cảm
- Bookmark công cụ bạn dùng hàng ngày — URL công cụ ZestLab ổn định, không cần tài khoản
- Khi format JSON có secret để team review, redact credential trước khi share output