SlideShare a Scribd company logo
1 of 31
XPATH & XSLT
Công nghệ XML và Ứng dụng:
Đặng Bác Văn
Ngô Bá Nam Phương05/2006
Đại học Khoa học Tự Nhiên
Khoa Công nghệ Thông tin
Nội dung
XPATH
- Các biểu thức XPATH thông dụng
- Axes
XSLT
Lập trình (C#)
Nội dung
XPATH
- Là các biểu thức dùng để truy xuất đến một hoặc
nhiều thẻ trong tài liệu XML
- Được sử dụng trong XSLT để chuyển đổi cấu trúc
nội dung tài liệu XML
XPATH
XPATH: Cú pháp cơ bản
/: Đường dẫn tuyệt đối bắt đầu từ node gốc của tài liệu
đến 1 node cụ thể
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
</AAA>
- /AAA: nút gốc
- /AAA/BBB: nút B là con của A
- /AAA/DDD/CCC: C – con D – con A (gốc)
//: Nút ở độ sâu bất kì //CCC: nút CCC ở độ sâu bất kì
XPATH
XPATH: Cú pháp cơ bản
<AAA>
<BBB>
<CCC/>
<BBB>
<CCC/>
</BBB>
</BBB>
</AAA>
- /AAA/*: Tất cả các nút con trực tiếp của AAA
*: Chọn tất cả các node với tên bất kỳ
- /*/BBB: Tất cả các nút B ở cấp thứ 2
//*: TẤT CẢ CÁC NODE
XPATH
XPATH: Cú pháp cơ bản
<AAA>
<BBB/>
<BBB/>
<BBB>
<CCC>
content
</CCC>
</BBB>
<BBB/>
- /AAA/BBB[1]: Nút BBB thứ 1 (con của AAA)
[ ]: Truy xuất đến các node theo thứ tự nào đó hoặc theo chỉ mục.
Ngoài ra, có thể dùng để chỉ định biểu thức điều kiện chọn lựa node
- /AAA/BBB[2]: Nút BBB thứ 2 (con của AAA)
- /AAA/BBB[last()]: Nút BBB cuối cùng
- /AAA/BBB[CCC=“content”]: Nút BBB thứ
3 (có nút con CCC với nội dung là content )
XPATH
XPATH: Cú pháp cơ bản
<AAA>
<BBB id=“b1”/>
<BBB id=“b2”/>
<CCC name=“ccc”/>
<CCC/>
</AAA>
- /AAA/BBB[@id]:
@: Truy xuất đến thuộc tính
- /AAA/CCC[@name=“ccc”]:
- /AAA/CCC[@*]:
Những node BBB có thuộc tính id
Những node CCC có giá trị thuộc tính
name = ccc
Những node CCC có thuộc tính
- /AAA/CCC[not(@*)]: Những node CCC KHÔNG có thuộc tính
XPATH
XPATH: Cú pháp cơ bản
<AAA>
<BBB>
<DDD/>
<DDD/>
<BBB/>
<CCC>
<DDD/>
<CCC/>
</AAA>
- //*[count(DDD)=2]:
count: hàm đếm
- //*[count(*)=1]:
Tất cả các node có đúng 2 thẻ con DDD
Tất cả các node có đúng 1 thẻ con (tên
thẻ con là gì cũng được)
XPATH
XPATH: Cú pháp cơ bản
<AAA>
<BBB>
<DDD/>
<BBB/>
<ECC>
<EEE/>
<ECC/>
<CFB/>
</AAA>
- //*[name()=‘DDD’]:
name(): Lấy tên thẻ, starts-with(), contains(): xử lý chuỗi
- //*[starts-with(name(), ‘E’)]:
- //*[contains(name(), ‘B’)]
Những node có tên là DDD
Những node có tên bắt đầu bằng ‘E’
Những node mà tên có chứa ‘B’
string-length(): chiều dài chuỗi
- //*[string-length(name())=3]
Những node có chiều dài tên thẻ là 3
XPATH
XPATH: Cú pháp cơ bản
<AAA>
<BBB>
<DDD/>
<DDD>
</EEE>
</DDD>
</BBB>
</AAA>
Chọn ra tất cả thẻ “con cháu” của
BBB ?
child:: : Chọn tất cả node con của node hiện thời
XPATH
XPATH: Axis – dùng để chọn các node trong mối quan hệ
với node hiện thời
<AAA>
<BBB>
<DDD/>
<BBB/>
<ECC>
<EEE/>
<ECC/>
<CFB/>
</AAA>
- /AAA/child::ECC
/AAA/ECC
- //BBB/child::*
/AAA/BBB/DDD
XPATH
XPATH: Axis
<AAA>
<BBB>
<DDD>
<EEE/>
</DDD>
</BBB>
</AAA>
descendant:: : Tất cả các thẻ “con cháu”
<AAA>
<BBB>
<DDD>
<EEE/>
</DDD>
</BBB>
</AAA>
/AAA/child::* /AAA/descendant::*
descendant-or-self:: = descendant:: + context node
XPATH
XPATH: Axis
parent:: : Thẻ cha
<AAA>
<BBB>
<DDD/>
<BBB/>
<ECC>
<EEE/>
<ECC/>
<CFB/>
</AAA>
- //BBB/parent::*
Thẻ cha của BBB
- //EEE/parent::ECC
Thẻ cha của ECC
XPATH
XPATH: Axis
<AAA>
<BBB>
<DDD>
<EEE/>
</DDD>
</BBB>
</AAA>
ancestor:: : Tất cả các thẻ “cha ông”
<AAA>
<BBB>
<DDD>
<EEE/>
</DDD>
</BBB>
</AAA>
/AAA/BBB/DDD/EEE/parent::* /AAA/BBB/DDD/EEE/ancestor::*
ancestor-or-self:: = ancestor:: + context node
XPATH
XPATH: Axis
following-sibling:: : Tất cả các thẻ “em”
preceding-sibling:: : Tất cả các thẻ “anh”
<AAA>
<BBB>
<DDD/>
<EEE/>
<FFF/>
<GGG/>
</BBB>
</AAA>
//EEE/following-sibling::*
<AAA>
<BBB>
<DDD/>
<EEE/>
<FFF/>
<GGG/>
</BBB>
</AAA>
<AAA>
<BBB>
<DDD/>
<EEE/>
<FFF/>
<GGG/>
</BBB>
</AAA>
//EEE/preceding-sibling::*
XPATH
XPATH: Axis
following:: : Tất cả các thẻ có thẻ mở xuất hiện sau thẻ đóng của
thẻ hiện hành
preceding::: Tất cả các thẻ có thẻ đóng xuất hiện trước thẻ mở của thh
//BBB/following::*
<AAA>
<BBB>
<DDD/>
</BBB>
<CCC>
<EEE/>
</CCC>
</AAA>
//EEE/preceding::*
<AAA>
<BBB>
<DDD/>
</BBB>
<CCC>
<EEE/>
</CCC>
</AAA>
XPATH
XPATH: Axis
<AAA>
<BBB>
<DDD/>
</BBB>
<CCC>
<EEE>
<FFF/>
</EEE>
<GGG/>
</CCC>
</AAA>
- //EEE/ancestor::*
- //EEE/descendant::*
- //EEE/following::*
- //EEE/preceding::*
- //EEE/self::*
5 axis trên tạo thành 5 phân
hoạch của tài liệu xml
Không overlap nhau
“Or” ( | ) lại sẽ cho kết quả là
tất cả các node của tài liệu
Nội dung
XPATH
- Các biểu thức XPATH thông dụng
- Axes
XSLT
Lập trình (C#)
XSLT
XSLT:
Chuyển đổi cấu trúc của tài liệu xml (thành 1 tài liệu xml khác, html…)
Khác ngôn ngữ lập trình
- XSLT chỉ định nghĩa các qui tắc chuyển đổi, việc thực hiện chuyển đổi
phải nhờ một chương trình khác
Chương trình (C#, VB.NET…)XML XSLTXMLHTML
Cách thức hoạt động
- Chương trình sẽ duyệt tài liệu xml (duyệt cây)
- Với mỗi node khớp với khuôn mẫu định nghĩa trong file XSLT, sẽ
được xử lý như định nghĩa trong file XSLT
Là một tập cáck khuôn mẫu (template) và xử lý tương ứng
XSLT
<xsl:template>: dùng để định nghĩa các template
<xsl:stylesheet version = '1.0‘
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match=“…">
<h1>
<xsl:value-of select="//title"/>
</h1>
<h2>
<xsl:value-of select="//author"/>
</h2>
</xsl:template>
<xsl:template match=“…">
…..
</xsl:template>
</xsl:stylesheet>
Khi gặp những thẻ thỏa đk “…” thì
thực hiện những chỉ thị sau
Biểu thức XPATH
XSLT
<xsl:value-of> Rút trích nội dung nằm trong các thẻ XML và
kết xuất ra file kết quả
<hocsinh>
<hoten>Nguyen Van A</hoten>
<mssv>0412341</mssv>
</hocsinh>
<xsl:stylesheet….>
<xsl:template match=“/”>
<h1><xsl:value-of select=“//hoten”/></h1>
<h2><xsl:value-of select=“//mssv”/></h2>
</xsl:template>
</xsl:stylesheet>
<h1> </h1>
<h2> </h2>
Nguyen Van A
0412341
Nếu bỏ dấu “//” ??
Các thẻ được rút trích nội dung được xác định thông qua thuộc
tính select
Nếu select trả về một tập các thẻ thì nội dung tất cả các thẻ này
đều được kết xuất ra file kết quả
XSLT
<xsl:template>
<source>
<a1>a1</a1>
<a2>a2</a2>
</source>
<xsl:stylesheet…………>
</xsl:stylesheet>
-Không có template Áp dụng xử lý mặc
định: tiếp tục so
khớp cho tất cả thẻ
con của thẻ hiện
hành
-Không có template
Mặc định: trả ra nội
dung của thẻa1a2
<xsl:template match=“/”>
</xsl:template>
<xsl:apply-templates/>
XSLT
<xsl:for-each> Duyệt và xử lý thông tin từng thẻ trong tập thẻ kết
quả được chọn ra từ thuộc tính select
<root>
<hoten id=“1”>Nguyen Van A</hoten>
<hoten id=“2”>Nguyen Thi B</hoten>
</root>
<xsl:stylesheet….>
<xsl:template match=“/”>
<xsl:for-each select = “//hoten”>
<xsl:text>id=</xsl:text>
<xsl:value-of select=“@id”/>
<xsl:text>hoten=</xsl:text>
<xsl:value-of select=“.”/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
id=1hoten=Nguyen Van A
Id=2hoten=Nguyen Thi B
XSLT
<xsl:sort>: Thực hiện sắp xếp trên file output
<root>
<hoten>Tran Van A</hoten>
<hoten>Nguyen Thi B</hoten>
</root>
<xsl:stylesheet….>
<xsl:template match=“/”>
<xsl:for-each select = “//hoten”>
<xsl:sort order=“ascending” select=“.”/>
<xsl:value-of select=“.”/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Nguyen Thi B
Tran Van A
<root>
<value>1</value>
<value>9</value>
<value>20</value>
</root>
?????
XSLT
<xsl:sort data-type>
<root>
<value>1</value>
<value>20</value>
<value>9</value>
</root>
<xsl:stylesheet….>
<xsl:template match=“/”>
<xsl:for-each select = “//value”>
<xsl:sort data-type=“number” select=“.”/>
<xsl:value-of select=“.”/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Kết quả:
1
9
20
Nếu không xác lập
thì data-type = “text”
XSLT
<xsl:if test>
<root>
<value>1</value>
<value>20</value>
<value>9</value>
</root>
<xsl:stylesheet….>
<xsl:template match=“/”>
<xsl:for-each select = “//value”>
<xsl:sort data-type=“number” select=“.”/>
<xsl:value-of select=“.”/>
<xsl:if test=“not (position()=last())”>
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Kết quả:
1,9,20
XSLT
<xsl:choose>
<root>
<value>A</value>
<value>B</value>
</root>
<xsl:stylesheet….>
<xsl:template match=“/”>
<xsl:for-each select = “//hoten”>
<xsl:choose>
<xsl:when test = “A”/>
<xsl:text>30</xsl:text>
</xsl:when>
……
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Kết quả:
30
XSLT
<xsl:element>, <xsl:attribute>
<root>
<sinhvien id=“1”>Nguyen Van A</sinhvien >
<sinhvien id=“2”>Tran Thi B</sinhvien >
</root>
<xsl:stylesheet….>
<xsl:template match=“/root”>
<xsl:element name=“StudentList”>
<xsl:for-each select = “sinhvien”>
<xsl:element name=“Student”>
<xsl:attribute name=“StudentId” >
<xsl:value-of select=“@id” />
</xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:element >
</xsl:template>
</xsl:stylesheet>
Kết quả:
<StudentList>
<Student StudentId=“1” />
<Student StudentId=“2” />
</StudentList>
XSLT
XSLT:
Các hàm tính toán và format số
Tạo các node (thẻ) và tạo thuộc tính
Khai báo và sử dụng biến
Các hàm boolean
Các hàm xử lý chuỗi
Các hàm copy node
http://www.zvon.org/
Nội dung
XPATH
- Các biểu thức XPATH thông dụng
- Axes
XSLT
Lập trình (C#)
Lập trình
XmlDocument xdoc = new XmlDocument();
xdoc.Load (xml_file );
XslTransform xsl = new XslTransform();
XmlTextWriter wt = new XmlTextWriter( out_htm_file , System.Text.
UTF8Encoding.UTF8 );
try
{
xsl.Load( xslt_file );
xsl.Transform(xdoc,null,wt);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
wt.Close();
}
Trong ASP.NET,
dùng xml control

More Related Content

What's hot

Bài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệuBài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệuzzsunzz
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýMasterCode.vn
 
3. phan quyen trong sql server 01012010
3. phan quyen trong sql server 010120103. phan quyen trong sql server 01012010
3. phan quyen trong sql server 01012010Truong van Duoc
 
Hiberbate Framework
Hiberbate FrameworkHiberbate Framework
Hiberbate FrameworkPhuoc Nguyen
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 
Chuong 07_ gắng kết dữ liệu asp.net
Chuong 07_ gắng kết dữ liệu asp.netChuong 07_ gắng kết dữ liệu asp.net
Chuong 07_ gắng kết dữ liệu asp.netThuyNguyenThi25
 
Sao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vnSao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vnzBackupVN
 
Cấu hình Hibernate
Cấu hình HibernateCấu hình Hibernate
Cấu hình HibernateMinh Quang
 
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTBài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTMasterCode.vn
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_serverthai
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...MasterCode.vn
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nayledoanduc
 

What's hot (14)

Bài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệuBài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệu
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lý
 
3. phan quyen trong sql server 01012010
3. phan quyen trong sql server 010120103. phan quyen trong sql server 01012010
3. phan quyen trong sql server 01012010
 
Hiberbate Framework
Hiberbate FrameworkHiberbate Framework
Hiberbate Framework
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 
Chuong 07_ gắng kết dữ liệu asp.net
Chuong 07_ gắng kết dữ liệu asp.netChuong 07_ gắng kết dữ liệu asp.net
Chuong 07_ gắng kết dữ liệu asp.net
 
Sao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vnSao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vn
 
Com201 slide 3
Com201   slide 3Com201   slide 3
Com201 slide 3
 
Cấu hình Hibernate
Cấu hình HibernateCấu hình Hibernate
Cấu hình Hibernate
 
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTBài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_server
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nay
 
Com201 slide 4
Com201   slide 4Com201   slide 4
Com201 slide 4
 

More from mrtom16071980

Bai giang-ms-excel-2010
Bai giang-ms-excel-2010Bai giang-ms-excel-2010
Bai giang-ms-excel-2010mrtom16071980
 
Session 8 Bai 8 ve winform
Session 8 Bai 8 ve winformSession 8 Bai 8 ve winform
Session 8 Bai 8 ve winformmrtom16071980
 
Session 6 Bai 6 ve winform
Session 6 Bai 6 ve winformSession 6 Bai 6 ve winform
Session 6 Bai 6 ve winformmrtom16071980
 
Session 5 Bai 5 ve winform
Session 5 Bai 5 ve winformSession 5 Bai 5 ve winform
Session 5 Bai 5 ve winformmrtom16071980
 
Session 4 Bai 4 ve winform
Session 4 Bai 4 ve winformSession 4 Bai 4 ve winform
Session 4 Bai 4 ve winformmrtom16071980
 
Session 3 Bai 3 ve winform
Session 3 Bai 3 ve winformSession 3 Bai 3 ve winform
Session 3 Bai 3 ve winformmrtom16071980
 
Session 2 Bai 2 ve winform
Session 2 Bai 2 ve winformSession 2 Bai 2 ve winform
Session 2 Bai 2 ve winformmrtom16071980
 
Session 1. Bai 1 ve winform
Session 1. Bai 1 ve winformSession 1. Bai 1 ve winform
Session 1. Bai 1 ve winformmrtom16071980
 
Session 7 Bai 7 ve winform
Session 7 Bai 7 ve winformSession 7 Bai 7 ve winform
Session 7 Bai 7 ve winformmrtom16071980
 

More from mrtom16071980 (10)

Bai giang-ms-excel-2010
Bai giang-ms-excel-2010Bai giang-ms-excel-2010
Bai giang-ms-excel-2010
 
7314 l10 pwerpoint
7314 l10 pwerpoint7314 l10 pwerpoint
7314 l10 pwerpoint
 
Session 8 Bai 8 ve winform
Session 8 Bai 8 ve winformSession 8 Bai 8 ve winform
Session 8 Bai 8 ve winform
 
Session 6 Bai 6 ve winform
Session 6 Bai 6 ve winformSession 6 Bai 6 ve winform
Session 6 Bai 6 ve winform
 
Session 5 Bai 5 ve winform
Session 5 Bai 5 ve winformSession 5 Bai 5 ve winform
Session 5 Bai 5 ve winform
 
Session 4 Bai 4 ve winform
Session 4 Bai 4 ve winformSession 4 Bai 4 ve winform
Session 4 Bai 4 ve winform
 
Session 3 Bai 3 ve winform
Session 3 Bai 3 ve winformSession 3 Bai 3 ve winform
Session 3 Bai 3 ve winform
 
Session 2 Bai 2 ve winform
Session 2 Bai 2 ve winformSession 2 Bai 2 ve winform
Session 2 Bai 2 ve winform
 
Session 1. Bai 1 ve winform
Session 1. Bai 1 ve winformSession 1. Bai 1 ve winform
Session 1. Bai 1 ve winform
 
Session 7 Bai 7 ve winform
Session 7 Bai 7 ve winformSession 7 Bai 7 ve winform
Session 7 Bai 7 ve winform
 

Recently uploaded

chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

hoc ve xml

  • 1. XPATH & XSLT Công nghệ XML và Ứng dụng: Đặng Bác Văn Ngô Bá Nam Phương05/2006 Đại học Khoa học Tự Nhiên Khoa Công nghệ Thông tin
  • 2. Nội dung XPATH - Các biểu thức XPATH thông dụng - Axes XSLT Lập trình (C#)
  • 3. Nội dung XPATH - Là các biểu thức dùng để truy xuất đến một hoặc nhiều thẻ trong tài liệu XML - Được sử dụng trong XSLT để chuyển đổi cấu trúc nội dung tài liệu XML
  • 4. XPATH XPATH: Cú pháp cơ bản /: Đường dẫn tuyệt đối bắt đầu từ node gốc của tài liệu đến 1 node cụ thể <AAA> <BBB/> <CCC/> <DDD> <CCC/> </DDD> </AAA> - /AAA: nút gốc - /AAA/BBB: nút B là con của A - /AAA/DDD/CCC: C – con D – con A (gốc) //: Nút ở độ sâu bất kì //CCC: nút CCC ở độ sâu bất kì
  • 5. XPATH XPATH: Cú pháp cơ bản <AAA> <BBB> <CCC/> <BBB> <CCC/> </BBB> </BBB> </AAA> - /AAA/*: Tất cả các nút con trực tiếp của AAA *: Chọn tất cả các node với tên bất kỳ - /*/BBB: Tất cả các nút B ở cấp thứ 2 //*: TẤT CẢ CÁC NODE
  • 6. XPATH XPATH: Cú pháp cơ bản <AAA> <BBB/> <BBB/> <BBB> <CCC> content </CCC> </BBB> <BBB/> - /AAA/BBB[1]: Nút BBB thứ 1 (con của AAA) [ ]: Truy xuất đến các node theo thứ tự nào đó hoặc theo chỉ mục. Ngoài ra, có thể dùng để chỉ định biểu thức điều kiện chọn lựa node - /AAA/BBB[2]: Nút BBB thứ 2 (con của AAA) - /AAA/BBB[last()]: Nút BBB cuối cùng - /AAA/BBB[CCC=“content”]: Nút BBB thứ 3 (có nút con CCC với nội dung là content )
  • 7. XPATH XPATH: Cú pháp cơ bản <AAA> <BBB id=“b1”/> <BBB id=“b2”/> <CCC name=“ccc”/> <CCC/> </AAA> - /AAA/BBB[@id]: @: Truy xuất đến thuộc tính - /AAA/CCC[@name=“ccc”]: - /AAA/CCC[@*]: Những node BBB có thuộc tính id Những node CCC có giá trị thuộc tính name = ccc Những node CCC có thuộc tính - /AAA/CCC[not(@*)]: Những node CCC KHÔNG có thuộc tính
  • 8. XPATH XPATH: Cú pháp cơ bản <AAA> <BBB> <DDD/> <DDD/> <BBB/> <CCC> <DDD/> <CCC/> </AAA> - //*[count(DDD)=2]: count: hàm đếm - //*[count(*)=1]: Tất cả các node có đúng 2 thẻ con DDD Tất cả các node có đúng 1 thẻ con (tên thẻ con là gì cũng được)
  • 9. XPATH XPATH: Cú pháp cơ bản <AAA> <BBB> <DDD/> <BBB/> <ECC> <EEE/> <ECC/> <CFB/> </AAA> - //*[name()=‘DDD’]: name(): Lấy tên thẻ, starts-with(), contains(): xử lý chuỗi - //*[starts-with(name(), ‘E’)]: - //*[contains(name(), ‘B’)] Những node có tên là DDD Những node có tên bắt đầu bằng ‘E’ Những node mà tên có chứa ‘B’ string-length(): chiều dài chuỗi - //*[string-length(name())=3] Những node có chiều dài tên thẻ là 3
  • 10. XPATH XPATH: Cú pháp cơ bản <AAA> <BBB> <DDD/> <DDD> </EEE> </DDD> </BBB> </AAA> Chọn ra tất cả thẻ “con cháu” của BBB ?
  • 11. child:: : Chọn tất cả node con của node hiện thời XPATH XPATH: Axis – dùng để chọn các node trong mối quan hệ với node hiện thời <AAA> <BBB> <DDD/> <BBB/> <ECC> <EEE/> <ECC/> <CFB/> </AAA> - /AAA/child::ECC /AAA/ECC - //BBB/child::* /AAA/BBB/DDD
  • 12. XPATH XPATH: Axis <AAA> <BBB> <DDD> <EEE/> </DDD> </BBB> </AAA> descendant:: : Tất cả các thẻ “con cháu” <AAA> <BBB> <DDD> <EEE/> </DDD> </BBB> </AAA> /AAA/child::* /AAA/descendant::* descendant-or-self:: = descendant:: + context node
  • 13. XPATH XPATH: Axis parent:: : Thẻ cha <AAA> <BBB> <DDD/> <BBB/> <ECC> <EEE/> <ECC/> <CFB/> </AAA> - //BBB/parent::* Thẻ cha của BBB - //EEE/parent::ECC Thẻ cha của ECC
  • 14. XPATH XPATH: Axis <AAA> <BBB> <DDD> <EEE/> </DDD> </BBB> </AAA> ancestor:: : Tất cả các thẻ “cha ông” <AAA> <BBB> <DDD> <EEE/> </DDD> </BBB> </AAA> /AAA/BBB/DDD/EEE/parent::* /AAA/BBB/DDD/EEE/ancestor::* ancestor-or-self:: = ancestor:: + context node
  • 15. XPATH XPATH: Axis following-sibling:: : Tất cả các thẻ “em” preceding-sibling:: : Tất cả các thẻ “anh” <AAA> <BBB> <DDD/> <EEE/> <FFF/> <GGG/> </BBB> </AAA> //EEE/following-sibling::* <AAA> <BBB> <DDD/> <EEE/> <FFF/> <GGG/> </BBB> </AAA> <AAA> <BBB> <DDD/> <EEE/> <FFF/> <GGG/> </BBB> </AAA> //EEE/preceding-sibling::*
  • 16. XPATH XPATH: Axis following:: : Tất cả các thẻ có thẻ mở xuất hiện sau thẻ đóng của thẻ hiện hành preceding::: Tất cả các thẻ có thẻ đóng xuất hiện trước thẻ mở của thh //BBB/following::* <AAA> <BBB> <DDD/> </BBB> <CCC> <EEE/> </CCC> </AAA> //EEE/preceding::* <AAA> <BBB> <DDD/> </BBB> <CCC> <EEE/> </CCC> </AAA>
  • 17. XPATH XPATH: Axis <AAA> <BBB> <DDD/> </BBB> <CCC> <EEE> <FFF/> </EEE> <GGG/> </CCC> </AAA> - //EEE/ancestor::* - //EEE/descendant::* - //EEE/following::* - //EEE/preceding::* - //EEE/self::* 5 axis trên tạo thành 5 phân hoạch của tài liệu xml Không overlap nhau “Or” ( | ) lại sẽ cho kết quả là tất cả các node của tài liệu
  • 18. Nội dung XPATH - Các biểu thức XPATH thông dụng - Axes XSLT Lập trình (C#)
  • 19. XSLT XSLT: Chuyển đổi cấu trúc của tài liệu xml (thành 1 tài liệu xml khác, html…) Khác ngôn ngữ lập trình - XSLT chỉ định nghĩa các qui tắc chuyển đổi, việc thực hiện chuyển đổi phải nhờ một chương trình khác Chương trình (C#, VB.NET…)XML XSLTXMLHTML Cách thức hoạt động - Chương trình sẽ duyệt tài liệu xml (duyệt cây) - Với mỗi node khớp với khuôn mẫu định nghĩa trong file XSLT, sẽ được xử lý như định nghĩa trong file XSLT Là một tập cáck khuôn mẫu (template) và xử lý tương ứng
  • 20. XSLT <xsl:template>: dùng để định nghĩa các template <xsl:stylesheet version = '1.0‘ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:template match=“…"> <h1> <xsl:value-of select="//title"/> </h1> <h2> <xsl:value-of select="//author"/> </h2> </xsl:template> <xsl:template match=“…"> ….. </xsl:template> </xsl:stylesheet> Khi gặp những thẻ thỏa đk “…” thì thực hiện những chỉ thị sau Biểu thức XPATH
  • 21. XSLT <xsl:value-of> Rút trích nội dung nằm trong các thẻ XML và kết xuất ra file kết quả <hocsinh> <hoten>Nguyen Van A</hoten> <mssv>0412341</mssv> </hocsinh> <xsl:stylesheet….> <xsl:template match=“/”> <h1><xsl:value-of select=“//hoten”/></h1> <h2><xsl:value-of select=“//mssv”/></h2> </xsl:template> </xsl:stylesheet> <h1> </h1> <h2> </h2> Nguyen Van A 0412341 Nếu bỏ dấu “//” ?? Các thẻ được rút trích nội dung được xác định thông qua thuộc tính select Nếu select trả về một tập các thẻ thì nội dung tất cả các thẻ này đều được kết xuất ra file kết quả
  • 22. XSLT <xsl:template> <source> <a1>a1</a1> <a2>a2</a2> </source> <xsl:stylesheet…………> </xsl:stylesheet> -Không có template Áp dụng xử lý mặc định: tiếp tục so khớp cho tất cả thẻ con của thẻ hiện hành -Không có template Mặc định: trả ra nội dung của thẻa1a2 <xsl:template match=“/”> </xsl:template> <xsl:apply-templates/>
  • 23. XSLT <xsl:for-each> Duyệt và xử lý thông tin từng thẻ trong tập thẻ kết quả được chọn ra từ thuộc tính select <root> <hoten id=“1”>Nguyen Van A</hoten> <hoten id=“2”>Nguyen Thi B</hoten> </root> <xsl:stylesheet….> <xsl:template match=“/”> <xsl:for-each select = “//hoten”> <xsl:text>id=</xsl:text> <xsl:value-of select=“@id”/> <xsl:text>hoten=</xsl:text> <xsl:value-of select=“.”/> </xsl:for-each> </xsl:template> </xsl:stylesheet> id=1hoten=Nguyen Van A Id=2hoten=Nguyen Thi B
  • 24. XSLT <xsl:sort>: Thực hiện sắp xếp trên file output <root> <hoten>Tran Van A</hoten> <hoten>Nguyen Thi B</hoten> </root> <xsl:stylesheet….> <xsl:template match=“/”> <xsl:for-each select = “//hoten”> <xsl:sort order=“ascending” select=“.”/> <xsl:value-of select=“.”/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Nguyen Thi B Tran Van A <root> <value>1</value> <value>9</value> <value>20</value> </root> ?????
  • 25. XSLT <xsl:sort data-type> <root> <value>1</value> <value>20</value> <value>9</value> </root> <xsl:stylesheet….> <xsl:template match=“/”> <xsl:for-each select = “//value”> <xsl:sort data-type=“number” select=“.”/> <xsl:value-of select=“.”/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Kết quả: 1 9 20 Nếu không xác lập thì data-type = “text”
  • 26. XSLT <xsl:if test> <root> <value>1</value> <value>20</value> <value>9</value> </root> <xsl:stylesheet….> <xsl:template match=“/”> <xsl:for-each select = “//value”> <xsl:sort data-type=“number” select=“.”/> <xsl:value-of select=“.”/> <xsl:if test=“not (position()=last())”> <xsl:text>,</xsl:text> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet> Kết quả: 1,9,20
  • 27. XSLT <xsl:choose> <root> <value>A</value> <value>B</value> </root> <xsl:stylesheet….> <xsl:template match=“/”> <xsl:for-each select = “//hoten”> <xsl:choose> <xsl:when test = “A”/> <xsl:text>30</xsl:text> </xsl:when> …… </xsl:choose> </xsl:for-each> </xsl:template> </xsl:stylesheet> Kết quả: 30
  • 28. XSLT <xsl:element>, <xsl:attribute> <root> <sinhvien id=“1”>Nguyen Van A</sinhvien > <sinhvien id=“2”>Tran Thi B</sinhvien > </root> <xsl:stylesheet….> <xsl:template match=“/root”> <xsl:element name=“StudentList”> <xsl:for-each select = “sinhvien”> <xsl:element name=“Student”> <xsl:attribute name=“StudentId” > <xsl:value-of select=“@id” /> </xsl:attribute> </xsl:element> </xsl:for-each> </xsl:element > </xsl:template> </xsl:stylesheet> Kết quả: <StudentList> <Student StudentId=“1” /> <Student StudentId=“2” /> </StudentList>
  • 29. XSLT XSLT: Các hàm tính toán và format số Tạo các node (thẻ) và tạo thuộc tính Khai báo và sử dụng biến Các hàm boolean Các hàm xử lý chuỗi Các hàm copy node http://www.zvon.org/
  • 30. Nội dung XPATH - Các biểu thức XPATH thông dụng - Axes XSLT Lập trình (C#)
  • 31. Lập trình XmlDocument xdoc = new XmlDocument(); xdoc.Load (xml_file ); XslTransform xsl = new XslTransform(); XmlTextWriter wt = new XmlTextWriter( out_htm_file , System.Text. UTF8Encoding.UTF8 ); try { xsl.Load( xslt_file ); xsl.Transform(xdoc,null,wt); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { wt.Close(); } Trong ASP.NET, dùng xml control