xml_formatter.ts

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.

Tức thìMiễn phíBảo mậtKhông cần đăng ký
xml — formatter & validator
Thụt lề:
ĐẦU VÀO
0 ký tự
KẾT QUẢ
Bảng ký tự XML đặc biệt

Các ký tự đặc biệt và thực thể XML tương ứng

&&Ampersand
&lt;<Less than
&gt;>Greater than
&quot;"Double quote
&apos;'Apostrophe
&#xA;\nNewline (hex)
&#9;\tTab (decimal)
&#169;©Copyright sign
Đoạn code mẫu

Cách định dạng và phân tích XML trong các ngôn ngữ phổ biến

// Format XML in the browser const parser = new DOMParser(); const doc = parser.parseFromString(xmlString, "application/xml"); const serializer = new XMLSerializer(); const formatted = serializer.serializeToString(doc); // Pretty-print with indentation function prettyXml(xml, indent = 2) { const sp = " ".repeat(indent); let level = 0; return xml.replace(/>\s*</g, ">\n<") .split("\n") .map(line => { const t = line.trim(); if (t.startsWith("</")) level--; const out = sp.repeat(level) + t; if (t.startsWith("<") && !t.startsWith("</") && !t.endsWith("/>")) level++; return out; }).join("\n"); }
Mẫu 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íXMLJSON
Cú phápThẻ mở/đóng, thuộc tínhNgoặc nhọn, ngoặc vuông
SchemaXSD, DTD, SchematronJSON Schema
Truy vấnXPath, XQuery, XSLTJSONPath, jq
CommentsHỗ trợKhông hỗ trợ
NamespacesHỗ trợ đầy đủKhông có
Kiểu dữ liệuTất cả đều là textString, number, boolean, null
Dùng choCấu hình, SOAP, SVG, RSSREST API, lưu trữ NoSQL

Quy tắc cú pháp XML quan trọng

  • Thẻ phân biệt hoa/thường: <Book><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ùng disabled khô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 &amp;
  • 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