Định dạng & chuyển đổi XML
Định dạng, rút gọn và kiểm tra XML, thử biểu thức XPath, và chuyển dữ liệu qua lại giữa XML và JSON theo cả hai chiều — tiện khi làm việc với dữ liệu API, tệp cấu hình, RSS feed, thông điệp SOAP và hệ thống cũ dùng XML. Mọi thứ chạy ngay trong trình duyệt.
XML ↔ JSON
- Mở tab XML ↔ JSON (tab mặc định) và chọn chiều: XML → JSON hoặc JSON → XML.
- Dán dữ liệu vào ô bên trái.
- Kết quả hiện ở ô bên phải — bấm biểu tượng sao chép, hoặc Đổi chiều để đưa kết quả trở lại làm đầu vào.
- Thuộc tính trở thành key có tiền tố
@(vd@id); nội dung văn bản lẫn dùng key#text. - Các thẻ trùng tên lặp lại tự động thành mảng JSON.
- Đổi chiều rất hợp để kiểm tra khứ hồi — chuyển một chiều rồi lật lại để đối chiếu.
Định dạng / Rút gọn
Chuyển sang Định dạng / Rút gọn và dán XML vào ô bên trái.
- Định dạng đặt mỗi phần tử trên một dòng riêng, thụt lề 2 hoặc 4 khoảng trắng hoặc bằng Tab.
- Rút gọn xoá khoảng trắng giữa các thẻ.
Chỉ khoảng trắng giữa các thẻ thay đổi. Nội dung văn bản, khối CDATA, comment, processing instruction và DOCTYPE được chép nguyên văn, mọi phần tử có xml:space="preserve" cũng vậy. Phần tử trộn văn bản với phần tử con, như <p>Hello <b>world</b></p>, được giữ trên một dòng như khi viết, vì khoảng trắng bên trong thuộc về văn bản. Định dạng một file đã rút gọn cho kết quả giống hệt định dạng file gốc.
Sao chép chép kết quả, còn Dùng làm đầu vào thay nội dung ô nhập bằng kết quả. Nếu XML không đúng cú pháp, bạn sẽ thấy lỗi kèm dòng và cột, cùng chính dòng đó với dấu mũ chỉ đúng vị trí.
Kiểm tra
Tab Kiểm tra xác nhận XML đúng cú pháp (well-formed): có đúng một phần tử gốc, mọi thẻ được đóng đúng thứ tự, giá trị thuộc tính nằm trong dấu nháy và không lặp, ký tự & đơn lẻ được viết thành entity, và bên ngoài phần tử gốc chỉ có comment và processing instruction. Lỗi được chỉ tới đúng dòng và cột; tài liệu hợp lệ hiển thị phần tử gốc cùng số phần tử, thuộc tính, comment và độ sâu lồng nhau.
Nếu bộ phân tích XML của chính trình duyệt vẫn báo lỗi — thường do một entity như không được DTD nào khai báo — thông báo của nó cũng được hiển thị. Đây chỉ là kiểm tra cú pháp; công cụ không kiểm tra theo DTD hay XSD.
XPath
Tab XPath chạy biểu thức XPath 1.0 bằng bộ máy có sẵn trong trình duyệt. Gõ biểu thức rồi nhấn Chạy (hoặc Enter), hoặc bấm một thẻ ví dụ để nạp biểu thức.
- Tập nút được liệt kê thành bảng gồm loại, tên, giá trị và XML của từng nút.
- Hàm và phép so sánh như
count(//book)haystring(/*/@id)trả về một số, chuỗi hoặc true/false. - Tiền tố namespace khai báo trong tài liệu dùng được ngay (
dc:title). XPath 1.0 không khớp được phần tử thuộc namespace mặc định (xmlns="…") nếu không có tiền tố, nên trang gán namespace đó chod— hãy viết//d:bookchứ không phải//book. Các tiền tố dùng được được liệt kê dưới phần ví dụ.
Câu hỏi thường gặp
Thuộc tính XML được biểu diễn thế nào trong JSON?
Là các key @name trên object phần tử, nên <note id="1"> thành { "note": { "@id": "1", … } }.
Vì sao //book không tìm thấy gì?
Nhiều khả năng tài liệu của bạn khai báo namespace mặc định như xmlns="urn:example:books". Trong XPath 1.0, tên không có tiền tố chỉ khớp phần tử không thuộc namespace nào, nên hãy dùng tiền tố mà trang hiển thị cho namespace mặc định: //d:book.
Định dạng có làm thay đổi dữ liệu không?
Không. Chỉ khoảng trắng giữa các thẻ được thêm hoặc bớt; văn bản, CDATA, comment và nội dung xml:space="preserve" được giữ nguyên như cũ.
Dữ liệu có bị tải lên không?
Không — việc định dạng, kiểm tra, chạy XPath và chuyển đổi đều diễn ra hoàn toàn trong trình duyệt.