STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    XML Path Language

    Hướng dẫn sử dụng XPath để di chuyển, sàng lọc các elements và attributes giúp cho ứng dụng có thể truy xuất được giá trị của các element trong một tài liệu XML
    06/09/2015 23/09/2020 4 phút đọc
    XML Path Language

    Giới thiệu

    XML là một ngôn ngữ để mô tả và lưu trữ dữ liệu. Tuy nhiên với tốc độ phát triển của công nghệ thông tin, nhu cầu của các ứng dụng không chỉ dừng lại ở mức lưu trữ, các hệ thống cần trao đổi thông tin với nhau. Để trao đổi thông tin trong các tài liệu XML cần một chuẩn chung để truy xuất dữ liệu.

    Giải quyết vấn đề đó, XML Path Language (XPath) được sinh ra. XPath là một ngôn ngữ thiết kế ra với mục đích giúp các chương trình ứng dụng có thể di chuyển bên trong tài liệu XML và truy xuất các giá trị của các elements cũng như các attributes.

    XML Path Language (XPath)

    Để một ứng dụng có thể sử dụng được dữ liệu bên trong tài liệu XML thì ứng dụng đó phải có khả năng đi lại tìm kiếm và truy xuất nội dung của các elements và các attributes. Để giải quyết vấn đề trên đã thiết kế ra XML Path Language (XPath). XPath đóng một vai trò hết sức quan trọng trong việc truy vấn dữ liệu và một số kỹ thuật khác trong ngôn ngữ XML.

    Tài liệu XML như một cây với XPath

    XPath cung cấp cú pháp để mô tả cách di chuyển trong một tài liệu XML. Để có thể di chuyển trong tài liệu XML, trước hết XPath xem một tài liệu XML như một cấu trúc dạng cây (tree) và các elements, attributes bên trong được xem như các nodes của cây.

    Một tài liệu XML có nội dung:

    <?xml version="1.0" encoding="UTF-8"?>
    <list>
    	<article id="64">
    		<author>La Kiến Vinh</author>
    		<title>So Sánh null Và Rỗng</title>
    		<link>http://www.stdio.vn/articles/read/64-so-sanh-null-va-rong</link>
    		<publish_date>22/09/2014</publish_date>
    	</article>
    	<article id="63">
    		<author>Vũ Quang Huy</author>
    		<title>Giới Thiệu Về Fractal</title>
    		<link>https://www.stdio.vn/articles/read/20/gioi-thieu-ve-fractal</link>
    		<publish_date>17/06/2014</publish_date>
    	</article>
    </list>

    Đối với XPath, tài liệu XML trên được hiện thực bằng một tree với element được biểu diễn bằng node màu trắng, attribute được biểu diễn bằng node màu xám.

    ss_1

    Mối quan hệ giữa các element

    XPath xem tài liệu XML như một cấu trúc dạng tree, do đó giữ các element tồn tại các mối quan hệ với nhau.

    • Parent: mỗi node (element, attribute) đều có một node parent. Ví dụ ở trên, node article là parent của các nodes id, author, title
    • Children: mỗi node có thể có nhiều và cũng có thể không có node children nào. Ví dụ ở trên, node id là children của node article. Node id cũng có thể không có node children nào cả.
    • Siblings: các nodes có chung node parent. Ví dụ như các nodes id, author, link
    • Ancestors: các nodes tổ tiên, bao gồm node parent và các nodes parent của parent. Ví dụ có thể xem node list là ancestor của node author.
    • Descending: các nodes con cháu, bao gồm node children và các nodes children của children.

    Cú pháp XPath

    Di chuyển trong tài liệu XML

    Muốn truy vấn dữ liệu trong một tài liệu XML trước hết phải di chuyển được trong tài liệu XML.

    Ví dụ: để có thể sử dụng một file, một chương trình trên máy tính, việc đầu tiên phải di chuyển vào các thư mục chứa file, chương trình đó.

    XPath cung cấp hai cách để diễn tả location path đến một node, viết đầy đủ và viết tắt. Trong cả hai cách đều dùng dấu slash / để nói đến root element. Xét ví dụ ở trên sẽ tìm location path đến một số nodes:

    Node article

    Cách viết đầy đủ: /child::list/child::article

    Cách viết tắt: /list/article

    Node id

    Cách viết đầy đủ: /child::list/child::article/attribute::id

    Cách viết tắt: /list/article/@id

    Qua hai ví dụ trên có hai vấn đề:

    • Thứ nhất cách viết đầy đủ nêu rõ mối quan hệ giữa các element, cách viết tắt thì không.
    • Thứ hai location path như trên chỉ giúp ứng dụng đi đến các nodes được chỉ định, còn khi muốn tìm kiếm có sàng lọc các nodes thì phải làm như thế nào? Để giải quyết vấn đề sàng lọc kết quả, người ta áp dụng biểu thức điều kiện vào location path.

    Sử dụng điều kiện trong location path

    Để sàng lọc kết quả, ta có thể thêm điều kiện (biểu thức, chỉ số, operator union) vào location path, điều kiện này được để trong cặp ngoặc vuông []. Một vài ví dụ về sử dụng điều kiện trong location path.

    Tìm location path đến những nodes articleid > 60

    Cách viết đầy đủ: /child::list/child::article[attribute::id > 60]

    Cách viết tắt: /list/article[@id > 60]

    Tìm location path đến những node article đầu tiên

    Cách viết đầy đủ: /child::list/child::article[1]

    Cách viết tắt: /list/article[1]

    Chú ý, chỉ số trong XPath bắt đầu từ số 1, nghĩa là node đầu tiên sẽ có chỉ số là 1 (thay vì 0 như một số ngôn ngữ lập trình). Ngoài ra để truy xuất theo chỉ số, XPath còn cung cấp một số function như last(), position()

    Tìm location path đến tất cả những nodes là con của node article

    Cách viết đầy đủ: /child::list/child::article/child::*

    Cách viết tắt: /list/article/*

    XPath cũng hỗ trợ kí tự đại diện asterisk (*) mang ý nghĩa tất cả.

    0 Bình luận
    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021