Xml: xpath là gì, xpath (xml path language)

      354

do đó họ thấy trên trình săn sóc đang hiển thị y nguim tư liệu cội. Vậy làm cho bí quyết như thế nào nhằm bạn có thể di chuyển trên các thành phần của tư liệu XML nhằm trích ra đầy đủ dữ liệu mà chúng ta quan trọng.

Bạn đang xem: Xml: xpath là gì, xpath (xml path language)

Để đáp ứng vấn đề đó fan ta kiến thiết ra một ngôn ngữ XPath. XPath tất cả một vai trò quan trọng đặc biệt trong việc hiệp thương dữ liệu giữa những máy tính xách tay giỏi thân những công tác ứng dụng bởi nó mang lại bọn họ chọn lọc các dữ liệu nhưng mà ta mong ước.

XPath coi XML như một cây, với ví dụ bên trên sẽ tiến hành màn biểu diễn dưới dạng cây sau:

*

Bây giờ họ hãy học biện pháp trải qua những nút vào tư liệu XML.

Đường dẫn tuyệt đối

Nếu băng thông XPath ban đầu bởi dấu / thì có nghĩa đó là một đường dẫn hoàn hảo bắt đầu từ bỏ phần tử cội.

Trong hình cấu tạo câyở trên, hiện giờ chúng ta ý muốn chọn nút Order ta viết nhỏng sau:


Cú pháp nguyên: /child::Order

Cú pháp tắt: /Order


Đi ra nhánh con Custumer bởi XPath nhỏng sau:


Cú pháp nguyên: /child::Order/child::Custumer

Cú pháp tắt: /Order/Custumer


Trong ngôi trường thích hợp muốn đi mang lại thuộc tính của nút thì chúng ta rất cần phải chỉ rõ tự khóa Attribute trong cú pháp nguyên hoặc
trong cú pháp tắt.

Xem thêm: Vn 30 Là Gì Và Cần Lưu Ý Gì Khi Đầu Tư Cổ Phiếu Vn30? Chỉ Số Vn30

Để rước thuộc tính OrderNo của nút ít Order ta cần sử dụng cú pháp XPath nhỏng sau:


Cú pháp nguyên: /child::Order/Attribute::OrderNo

Cú pháp tắt: /Order/
OrderNo


Đường dẫn tương đối

Lúc bọn họ mong mỏi trích một trong những phần tử làm sao đó mà bọn họ chỉ biết tên của bộ phận này chứ họ ngần ngừ là bộ phận này nằm ở phần làm sao thì bạn cũng có thể dùng băng thông tương đối để triển khai điểu này. Chúng ta cần sử dụng dấu // nhằm chỉ mang lại trình so sánh biết đấy là băng thông tương đối.

lấy một ví dụ, nhằm trích những phần tử mang tên là Product chúng ta viết nlỗi sau:


Cú pháp nguyên: //child::Product

Cú pháp viết tắt: //Product


Lúc bọn họ viết như thế này thì Khi trải qua trình phân tích đang truy tìm về những bộ phận mang tên là Product.

Chọn các bộ phận bởi cam kết từ bỏ đại diện

Để lựa chọn tất cả những bộ phận con của một phần tử làm sao kia bọn họ cần sử dụng ký kết trường đoản cú thay mặt đại diện *.

ví dụ như, để mang tất cả các thành phần bé của thành phần Order ta viết như sau:


Cú pháp nguyên: /child::Order/child::*

Cú pháp tắt: /Order/*


Chọn các bộ phận theo điều kiện

Để mang những phần tử theo một điều kiện làm sao kia bọn họ cần sử dụng vệt ngoặc vuông(< >).

lấy ví dụ, để mang đều bộ phận Product tất cả trực thuộc tính UnitPrice > 70 ta viết nhỏng sau:

Cú pháp nguyên:


//child::Product70>


Cú pháp tắt:


//Product<
UnitPrice>70>


lấy ví dụ như, để lấy đều phần tử Item có thành phần con là Product và gồm nằm trong tính ProductID=1 họ viết như sau:

Cú pháp nguyên:


//child::Item


Cú pháp tắt:


//ItemProductID=1>


Một số hàm thường dùng

Tên hàm

Ý nghĩa

Ví dụ

count()

Hàm lấy tổng số nút ít con của một

//Item

Chọn tất cả những phần tử Item gồm số phầntử con là 2

name()

Lấy tên của phần tử

/Order/*

Chọn tất cả các phần tử nhỏ của Ordercó tên là Item

not()

Hàm đậy định

//Item/**)>

Chọn toàn bộ các thành phần nhỏ của Itemkhông chứa thuộc tính nào

normalize-space(str)

Hàm vứt khoảng tầm trắng

//Item/*ProductID)=’abc’>

Chọn toàn bộ những phần tử con của Item cóthuộc tính ProductID=abc (ko phânbiệt khoảng tầm trắng)

starts-with(str,substr)

Hàm khám nghiệm xem chuỗi str cóđựng chuỗi substr (tính tự địa điểm đầutiên) tốt không

//item/*

Chọn tất cả những thành phần nhỏ của Item cóthương hiệu bước đầu bởi ký từ bỏ P

contains(str,substr)

Kiểm tra một chuỗi str gồm chứachuổi bé substr giỏi không

//item/*

Chọn toàn bộ những bộ phận nhỏ của phầntử Item nhưng mà thương hiệu của các bộ phận con nàycó chứ cam kết trường đoản cú u

string-length(str)Hàm rước chiều nhiều năm của một chuỗi

//Item/*

Chọn tất cả những bộ phận con của Itemnhưng độ nhiều năm tên của những phần tử bé này là 5

position()Cho biết địa chỉ bây chừ của phần tử

//Item

Chọn phần tử Item có địa điểm là 5

floor()Lấy quý giá nhỏ tuổi tốt nhất ngay sát với giá trịchỉ định
ceiling()Lấy cực hiếm lớn nhất ngay sát với mức giá trịchỉ định
last()Vị trí nút cuối cùng

//Item

Chọn phần tử Item cuối cùng

Một số toán thù tử hay dùng


Tên toán tử

Chức năng

Ví dụ

|

Toán tử hoặc dùng để làm lựa chọn ra mộtlần các bộ phận gồm điều kiện không giống nhau

//Item/*

Chọn tất cả các bộ phận là con của Itemcó mang tên bước đầu vì chưng ký từ bỏ P. hoặc Q

descendant

Chọn phần tử nhỏ của bộ phận chỉ định

/Order /Item/Product/descendant::*

Chọn toàn bộ các bộ phận là con của/Order/Item/Product

ancestor

Chọn thành phần cung cấp trên

/Order/Item/Product/ancestor::*

lựa chọn 2 phần tử Item và phần tử Order

following-sibling

Chọn thành phần thuộc cấp cho kế tiếp

/Order/OrderDate/following-sibling::*

chọn các bộ phận Custumer với hai phầntử Item theo sau với thuộc cấp cho với phầntử OrderDate

preceding-sibling

Chọn bộ phận thuộc cấp cho trước đó

/Order/Custumer/preceding-sibling::*

chọn bộ phận OrderDate

followingChọn bộ phận theo sau bộ phận chỉ định

/Order/OrderDate/following::*

chọn thành phần Custumer với 2 phần tửItem với các thành phần bé của Item

precedingChọn những phần tử đứng trước thành phần chỉ định

/Order/Custumer/preceding::*

chọn tất cả những thành phần đi trước phần tửCustumer

descendant-or-selfChọn thành phần cấp cho bên dưới cùng phần tử chỉ định

/Order/Item/descendant-or-self::*

Chọn toàn bộ các phần tử Item cùng cácphần tử con của bộ phận này

ancestor-or-selfChọn phần tử cấp cho bên trên với phần tử

/Order/Item/product/ancestor-or-self::*

lựa chọn 2 phân tử hàng hóa, 2 phần tử Itemvà bộ phận Order

Một số ví dụ

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

Nếu bạn có điều thắc mắc, bạn hãy bình luận cho gocnhintangphat.com sẽ được giải đáp. Bài viết này được chia sẻ vị LongDT. Nếu bạn có nhu cầu share nội dung bài viết, bạn hãy Đăng ký kết có tác dụng thành viên! « Prev
Next » Đăng ký học thử Đăng cam kết khóa đào tạo
*