Tải bản đầy đủ (.ppt) (24 trang)

Đồ án Xpath

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (372.42 KB, 24 trang )

Sinh viên thực hiện:
- Hồ Ngọc Triển
- Lê Chánh Thi
- Phan Trần Thanh Vân
- Bùi Đức Thịnh
Giảng viên hướng dẫn:
Phan Thị Phương Anh
Trường CĐ CNTT Hữu Nghị Việt Hàn
Trường CĐ CNTT Hữu Nghị Việt Hàn
Khoa Khoa học máy tính
Khoa Khoa học máy tính
<VietHan>
<Khoa makhoa="khmt" tenkhoa="Khoa Khoa hoc may tinh">
<BoMon Mabomon="thdc">Tin hoc dai cuong</BoMon>
<BoMon Mabomon="ltnnlt">Ly thuyet ngon ngu lap trinh</BoMon>
<quanly>
<truongkhoa>Nguyen Van A</truongkhoa>
</quanly>
</Khoa>
<Khoa makhoa="tmdt" tenkhoa="Khoa Thuong mai dien tu" >
<BoMon Mabomon="c#">C#</BoMon>
<BoMon Mabomon="aspx">Lap trinh web aspx</BoMon>
</Khoa>
</VietHan>
1. Giới thiệu
1. Giới thiệu
1. Giới thiệu
1. Giới thiệu
VietHan (nút gốc)
Khoa
Makhoa (khmt)


Tenkhoa (Khoa hoc may tinh)
BoMon (Tin hoc dai cuong)
BoMon (Ly thuyet nn lap trinh)
quanly
Mabomon (thdc)
Mabomon (ltnnlt)
Truongkhoa (Nguyen Van A)
Khoa
Makhoa (tmdt)
Tenkhoa (Thuong mai dien tu)
BoMon (C#)
BoMon (Lap trinh ASPX)
Mabomon (c#)
Mabomon (aspx)
1. Giới thiệu
1. Giới thiệu
2/- Cú pháp của XPath
2.1/- Đường dẫn tuyệt đối
* Đánh dấu bằng dấu “/”
- Chúng ta muốn chọn nút VietHan viết như sau :
Cú pháp: /child::VietHan
Cú pháp tắt: /VietHan
- Đi ra nhánh con BoMon bằng XPath như sau:
Cú pháp: /child::VietHan/child::Khoa/child::BoMon
Cú pháp tắt: /VietHan/Khoa/BoMon
2.1 Đường dẫn tuyệt đối
2.1 Đường dẫn tuyệt đối
- Trong trường hợp muốn đi đến thuộc tính của nút thì chúng ta
cần phải chỉ rõ từ khóa Attribute trong cú pháp nguyên hoặc @
trong cú pháp tắt.

Ví dụ: Để lấy giá trị của thuộc tính makhoa của nút Khoa ta dùng
cú pháp XPath như sau:
Cú pháp nguyên: /child::VietHan/child::Khoa/Attribute::makhoa
Cú pháp tắt: /VietHan/Khoa/@makhoa
<xsl:for-each select="VietHan/Khoa">
<xsl:value-of select="@makhoa" /><BR/>
</xsl:for-each>
2.1 Đường dẫn tuyệt đối
2.1 Đường dẫn tuyệt đối
Chúng ta dùng dấu // để chỉ cho trình phân tích biết đây là đường dẫn
tương đối.
- Để trích các phần tử có tên là BoMon chúng ta viết như sau:
Cú pháp nguyên: //child::BoMon
Cú pháp viết tắt: //BoMon
Khi chúng ta viết như thế này thì khi đi qua trình phân tích sẽ truy
tìm đến các phần tử có tên là BoMon
<xsl:for-each select="//BoMon">
<xsl:value-of select="@mabomon" /><BR/>
</xsl:for-each>
2.2 Đường dẫn tương đối
2.2 Đường dẫn tương đối
Để chọn tất cả các phần tử con của một phần tử nào đó chúng ta
dùng ký tự đại diện *.
Ví dụ, để lấy tất cả các phần tử con của phần tử VietHan ta viết
như sau:
Cú pháp nguyên: /child::VietHan/child::*
Cú pháp tắt: /VietHan/*
<xsl:for-each select="VietHan/BoMon/*">
<xsl:value-of select="@mabomon"/><BR/>
</xsl:for-each>

2.3 Chọn các phần tử bằng ký tự đại diện
2.3 Chọn các phần tử bằng ký tự đại diện
- Để lấy các phần tử theo một điều kiện nào đó chúng ta
dùng dấu ngoặc vuông([ ]).
Ví dụ, để lấy mọi phần tử BoMon có thuộc tính mabomon
= “c#” ta viết như sau:
Cú pháp nguyên:
//child::BoMon[attribute::mabomon= “c#”]
Cú pháp tắt: //BoMon[@mabomon = ‘c#’]
2.4 Chọn các phần tử theo điều kiện
2.4 Chọn các phần tử theo điều kiện
Tên hàm Ý nghĩa Ví dụ
count()
Hàm lấy tổng số nút con của một nút nào
đó
//Khoa[count(*)=2]
Chọn tất cả các phần tử Khoa có số nút con là 2
name() Lấy tên của phần tử
//Khoa/*[name()=Khoa]
Chọn tất cả các phần tử con của nút gốc có tên là
Khoa
not() Hàm phủ định
//Khoa/*[not(@*)]
Chọn tất cả các phần tử con của VietHan không
chứa thuộc tính nào.
normalize-space(str) Hàm loại bỏ khoảng trắng
//Khoa Normalize-space(@makhoa=”tmdt”)]
Chọn tất cả các phần tử con của Khoa có thuộc tính
makhoa=’tmdt’ không phân biệt chữ hoa thường
2.5 Một số hàm thường dùng

2.5 Một số hàm thường dùng
2.5 Một số hàm thường dùng
2.5 Một số hàm thường dùng
string-length(str) Hàm lấy chiều dài chuổi
//Khoa/*[string-length(name())=4]
Chọn tất cả các phần tử con của
Khoa có độ dài tên là 4 ký tự
position() Vị trí hiện tại của phần tử
//Khoa[position()=3]
Chọn phần tử Khoa có vị trí là 3
last() Vị trí cuối cùng
//Khoa[last()]
Chọn phần tử Khoa cuối cùng
2.6 Một số phần tử thường dùng
2.6 Một số phần tử thường dùng
Tên hàm Ý nghĩa Ví dụ
|
Chọn ra một lần nhiều phần tử có điều
kiện khác nhau
//Khoa[(position()=3) | (position()=5)]
Chọn tất cả các phần tử con của Khoa có vị trí
là 3 hoặc 5
descendant Chọn phần tử con của phần tử chỉ định
/VietHan/descendant::*
Chọn tất cả các phần tử con của VietHan
ancestor Chọn phần tử cha
//Khoa/ancestor::*
Chọn phần tử cha của phần tử Khoa
following-sibling Chọn phần tử cùng cấp kế tiếp
//Khoa/Following-sibling::*

Chọn các phần tử cùng cấp với Khoa
preceding-sibling Chọn phần tử cùng cấp trước đó //Khoa/Preceding-sibling::*
3. Một số ví dụ khác
3. Một số ví dụ khác
Phần tử gốc AAA (/AAA)
<AAA>
<BBB />
<CCC />
<BBB />
<DDD />
<BBB />
<DDD />
<CCC />
</AAA>
<AAA>
<BBB />
<CCC />
<BBB />
<DDD />
<BBB />
<DDD />
<CCC />
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn phần tử CCC là con của AAA (/AAA/CCC)
<AAA>
<BBB />
<CCC />
<BBB />

<BBB />
<DDD />
<BBB />
<DDD />
<CCC />
</AAA>
<AAA>
<BBB />
<CCC />
<BBB />
<BBB />
<DDD />
<BBB />
<DDD />
<CCC />
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn phần tử BBB là con của DDD mà DDD là
con của AAA (/AAA/DDD/BBB)
<AAA>
<BBB />
<CCC />
<BBB />
<BBB />
<DDD>
<BBB />
</DDD>
<CCC />
</AAA>

<AAA>
<BBB />
<CCC />
<BBB />
<BBB />
<DDD>
<BBB />
</DDD>
<CCC />
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn tất cả các phần tử BBB (//BBB)
<AAA>
<BBB />
<CCC />
<BBB />
<BBB />
<DDD>
<BBB />
</DDD>
<DDD />
<CCC />
</AAA>
<AAA>
<BBB />
<CCC />
<BBB />
<BBB />
<DDD>

<BBB />
</DDD>
<DDD />
<CCC />
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn tất cả các phần tử BBB là con DDD (//DDD/BBB)
<AAA>
<BBB />
<CCC />
<BBB />
<DDD>
<BBB />
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
<AAA>
<BBB />
<CCC />
<BBB />
<DDD>
<BBB />
</DDD>
<CCC>

<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn phần tử đầu tiên là con của AAA (/AAA/BBB[1])
<AAA>
<BBB />
<BBB />
<BBB />
</AAA>
<AAA>
<BBB />
<BBB />
<BBB />
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn phần tử cuối cùng là con của AAA (/AAA/BBB[last()])
<AAA>
<BBB />
<BBB />
<BBB />
</AAA>
<AAA>
<BBB />
<BBB />

<BBB />
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn tất cả các thuộc tính có tên id (//@id)
<AAA>
<BBB id=“b1” />
<BBB id=“b2” />
<BBB name=“bbb” />
<BBB/>
</AAA>
<AAA>
<BBB id=“b1” />
<BBB id=“b2” />
<BBB name=“bbb” />
<BBB/>
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn tất cả các phần tử có thuộc tính
<AAA>
<BBB id=“b1” />
<BBB id=“b2” />
<BBB name=“bbb” />
<BBB/>
</AAA>
<AAA>
<BBB id=“b1” />
<BBB id=“b2” />
<BBB name=“bbb” />

<BBB/>
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn tất cả các phần tử mà tên của nó có chứa ký tự B
(//*[contains(name(),’B’)])
<AAA>
<BCC>
<BBB/>
<BBB/>
</BCC>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
<AAA>
<BCC>
<BBB/>
<BBB/>
</BCC>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
3. Một số ví dụ khác
3. Một số ví dụ khác
Chọn tất cả các phần tử là con của AAA/BBB
(/AAA/BBB/descendant::*)

<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD/>
</CCC>
</AAA>
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD/>
</CCC>
</AAA>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×