Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1Xpath
Trang 2Xpath là gì
Bạn đã biết tài liệu XML được tổ chức dạng cây.
Ví dụ:
<?xml version="1.0" encoding="utf-8" ?>
<C>
<Windows>
<System>
<Driver/>
</System>
<Intenet>
Webpage.html data.xml
</Intenet>
</Windows>
<MyDocument/>
<ProgramFiles>
<WinZip/>
Trang 3Xpath là gì?
Trên đĩa cứng muốn truy xuất đến một tập tin hay một thư mục nào đó trên ổ đĩa cứng C ta dùng đường dẫn.
đĩa gốc đến file data.xml.
đến file dữ liệu data.xml là \Internet\data.xml
đại diện /internet/*.xml.
Trang 4Xpath là gì?
Trong tài liệu XML, có thể dùng khái niệm tương tự như trong hệ thống file của hệ điều hành thông qua Xpath
Tài liệu XML luôn có phần tử gốc (root) Ví dụ <C>
</C> là phần tử gốc Mọi phần tử con đều nằm
trong phần tử gốc
Xpath định nghỉa phần tử gốc là kí tự /
Tham chiếu đến một nút dữ liệu trong tài liệu XML, bạn có thể chỉ đường dẫn tương tự như đường dẫn thư mục
Trang 5Xpath và tham chiếu đường dẫn
đây là đường dẫn tuyệt đối bắt đầu từ phần tử gốc.
Ví dụ: ta có tài liệu như sau:
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
Xpath: /AAA kết quả phần tử AAA được chọn.
Xpath: /AAA/CCC kết quả tất cả những phần tử CCC là con của
phần tử AAA được chọn.
Xpath: /AAA/DDD/BBB kết quả chọn tất cả những phần tử BBB là con của /AAA/DDD
Trang 6Xpath và các tham chiếu đường dẫn
// để tham chiếu đến tất cả các phần tử trong tài liệu
Ví dụ:
Xpath: //BBB kết quả chọn tất cả các phần tử BBB trong tài liệu
Xpath: //DDD/BBB kết quả chọn tất cả những
phần tử BBB là con của phần tử DDD
Trang 7Xpath và các tham chiếu đường dẫn
diện * dùng chọn tất cả các phần tử cùng
thỏa mãn đường dẫn chỉ định.
Ví dụ:
Xpath: /AAA/CCC/DDD/* kết quả chọn tất cả các phần tử có đường dẫn /AAA/CCC/DDD
Xpath /*/*/*/BBB kết quả là chọn những phần tử BBB nằm ở cấp thứ 3
Xpath: //* chọn tất cả phần tử trong tài liệu
Trang 8Xpath và các tham chiếu đường dẫn
bạn có thể dùng ngoặc vuông [] để chỉ định vị trí của một phần tử XML cần chọn.
Ví dụ:
Xpath: /AAA/BBB[1]: chọn phần tử BBB đầu tiên trong nhánh AAA
Xpath: /AAA/BBB[last()]: chỉ ra phần tử BBB cuối cùng trong nhánh AAA
Trang 9Xpath và các tham chiếu đường dẫn
Chọn thuộc tính của một phần tử trong tài liệu: dùng kí tự @ để chọn hay chỉ đường dẫn đến một thuộc tính bên trong phần tử XML.
Ví dụ: ta có tài liệu sau:
<AAA>
<BBB id=“b1”/>
<CCC/>
<BBB id=“b2”/>
<BBB name=“bbb”/>
<DDD>
<BBB id=“b3”/>
</DDD>
<CCC/>
</AAA>
Xpath: //@id: chọn tất cả các phần tử có thuộc tính mang tên id.
Xpath: //BBB[@id]: chọn tất cả các phần tử BBBcó thuộc tính mang tên id Xpath: //BBB[@name]: chọn tất cả thuộc tính name của phần tử BBB
Xpath: //BBB[@*]: chọn tất cả các phần tử BBB có khai báo thuộc tính Xpath: //BBB[not(@*)]: chọn tất cả các phần tử BBB không có khai báo thuộc tính
Trang 10Xpath và các tham chiếu đường dẫn
dùng hàm count() để xác định tiêu chuẩn lựa chọn dựa vào tổng số phần tử có mặt trong tài liệu.
Ví dụ:
Xpath: //*[count(BBB)=2]: chọn tất cả các phần tử
có chứa 2 phần tử con BBB
Xpath: //*[count(*)=2]: chọn tất cả các phần tử có
Trang 11Xpath và các tham chiếu đường dẫn
thể dựa trên tên của phần tử để lọc ra các
phần tử cần chọn.
Ví dụ:
Xpath: //*[name()=‘BBB’]: chọn các phần tử BBB trong tài liệu
Xpath: //*[starts-with(name(), ‘B’)]: chọn tất cả các phần tử có tên bắt đầu bằng chữ B
Xpath: //*[contains(name(), ‘C’)]: chọn các phần tử
mà tên có chứa kí tự C
Trang 12Xpath và các tham chiếu đường dẫn
string-length() trả về chiều dài của tên thẻ, dùng hàm này để làm tiêu chuẩn chọn.
Ví dụ:
Xpath: //*[string-length(name())=3]: chọn tất cả các phần tử mà tên có chiều dài bằng 3
Xpath: //*[string-length(name())<3]: chọn tất cả các phần tử mà tên có chiều dài bé hơn 3
Trang 13Xpath và các tham chiếu đường dẫn
logic: có thể kết hợp nhiều lựa chọn hay
đường dẫn Xpath với nhau trong qua phép kết hợp bằng toán tử |.
Ví dụ:
Xpath: //CCC | //BBB
Xpath: //AAA/EEE | //BBB
Trang 14Xpath và các tham chiếu đường dẫn
thể sử dụng child để chỉ định chọn phần tử chứa phần tử con.
Ví dụ:
Xpath: /AAA tương đương //child::AAA: chọn tất
cả các phần tử AAA bắt đầu từ gốc
Xpath: /AAA/BBB tương đương
/child::AAA/child::BBB tương đương
/child::AAA/BBB
Trang 15Xpath và các tham chiếu đường dẫn
Chọn phần tử con: toán tử descendant dùng để
chọn các phần tử con
Ví dụ:
Xpath: /descendant::* :chọn tất cả các phần tử là con của phần tử gốc.
Xpath: /AAA/BBB/descendant::* : chọn tất cả các phần tử con của /AAA/BBB
Xpath: //CCC/descendant::* : chọn mọi phần tử là con của phần tử CCC
Xpath: //CCC/descendant::DDD : tìm phần tử DDD là con của CCC
Trang 16Xpath và các tham chiếu đường dẫn
chọn một phần tử là cha (một cấp) của một phần tử chỉ định.
Ví dụ: //DDD/parent::* : chọn phần tử là cha của phần tử DDD
để chọn các phần tử trên phần tử chỉ định 1 hay nhiều cấp.
Trang 17Xpath và các tham chiếu đường dẫn
toán tử following-sibling để yêu cầu chọn
chọn các phần tử cùng cấp.
Ví dụ:
Xpath: /AAA/BBB/following-sibling::*: chọn các phần tử cùng cấp tiếp theo sau /AAA/BBB
Xpath: //CCC/following-sibling::*: chọn các mọi phần tử trong tài liệu cùng cấp và theo sau phần
tử CCC
Trang 18Xpath và các đường dẫn tham chiếu
Dùng từ khóa preceding-sibling để chọn các phần
tử cùng cấp trước phần tử chỉ định
Dùng từ khóa following để chọn các phần tử theo sau phần tử chỉ
Dùng từ khóa preceding để chọn tất cả các phần tử đứng trước phần tử chỉ định
Chọn phần tử cấp dưới và phần tử chỉ định dùng từ khóa descendant-or-self
Chọn phần tử cấp trên và phần tử chỉ định dùng từ khóa ancestor-or-self