Công cụ
VI

Kiểm tra biểu thức XPath

Viết biểu thức XPath và xem kết quả ngay khi gõ: các phần tử, thuộc tính và văn bản khớp, hoặc số, chuỗi hay giá trị boolean mà biểu thức trả về. Công cụ sử dụng engine XPath 1.0 tích hợp sẵn trong trình duyệt của bạn.

Ví dụ – nhấp để thử:

    Riêng tư: dữ liệu của bạn được xử lý ngay trong trình duyệt và không bao giờ được tải lên.

    Cách kiểm tra biểu thức XPath

    1. Dán XML của bạn, mở file hoặc dùng danh mục sản phẩm mẫu.
    2. Gõ biểu thức XPath hoặc nhấp vào một trong các ví dụ. Kết quả cập nhật ngay khi bạn gõ, và phím Enter thực thi biểu thức ngay lập tức.
    3. Đọc kết quả: số nút khớp kèm loại và nội dung của chúng, hoặc số, chuỗi hay giá trị boolean mà biểu thức trả về.

    Bảng tra cứu nhanh XPath (cheat sheet)

    Biểu thứcChọn
    /catalogPhần tử gốc catalog
    //productMọi phần tử product, ở bất kỳ độ sâu nào
    /catalog/product/namename của từng sản phẩm, đi từng bước từ gốc
    //product/@idThuộc tính id của mọi sản phẩm
    //product[@category='books']Sản phẩm có thuộc tính category là books
    //product[price > 20]Sản phẩm có giá lớn hơn 20, so sánh theo số
    //product[contains(name, 'USB')]Sản phẩm có tên chứa “USB” (phân biệt chữ hoa/thường)
    //product[not(tags)]Sản phẩm không có phần tử con tags
    (//product)[1]Sản phẩm đầu tiên trong tài liệu
    //product[1]Sản phẩm đầu tiên bên trong mỗi phần tử cha
    //product[last()]Sản phẩm cuối cùng bên trong mỗi phần tử cha
    //name/text()Các nút văn bản bên trong name
    //price/..Phần tử cha của mỗi price
    //*[local-name()='product']Các phần tử product trong bất kỳ namespace nào
    count(//product)Số lượng sản phẩm
    sum(//price)Tổng của tất cả các giá
    string(//product[1]/name)Tên sản phẩm đầu tiên dưới dạng chuỗi

    Namespace trong XPath

    XPath 1.0 không có namespace mặc định. Trong tài liệu có xmlns="…", như sitemap hoặc hóa đơn NF-e, //url sẽ không tìm thấy gì, vì các phần tử thuộc namespace đó. Vì vậy, công cụ ánh xạ namespace mặc định sang tiền tố x: (hoặc d: nếu x đã được dùng), nên //x:url/x:loc sẽ hoạt động. Các tiền tố được khai báo trong tài liệu, như cfdi: trong hóa đơn CFDI, có thể dùng nguyên như khi viết. Trong các công cụ không có thiết lập namespace, //*[local-name()='url'] hoạt động ở mọi nơi.

    Câu hỏi thường gặp

    Công cụ hỗ trợ phiên bản XPath nào?

    XPath 1.0, phiên bản được tích hợp sẵn trong mọi trình duyệt và hầu hết thư viện XML. Các hàm từ XPath 2.0 trở lên, như matches(), lower-case() hoặc string-join(), không được hỗ trợ.

    Tại sao XPath của tôi không trả về kết quả nào?

    Nguyên nhân phổ biến nhất là namespace mặc định (hãy dùng tiền tố x: hiển thị bên dưới các ví dụ), khác biệt chữ hoa/thường – XPath phân biệt chữ hoa và chữ thường – và vị trí, vốn bắt đầu từ 1 chứ không phải 0.

    Hiển thị bao nhiêu kết quả?

    Tất cả kết quả khớp đều được đếm, và 500 kết quả đầu tiên được liệt kê kèm loại nút và nội dung.

    XML của tôi có bị tải lên không?

    Không. XML được phân tích và truy vấn ngay trong trình duyệt của bạn. Chỉ URL mà bạn tải mới được lấy thông qua máy chủ của chúng tôi.