XML --- > XML
Mục tiêu :
Trình bày một số kỹ thuật cơ bản cho phép tạo tài liệu Xml mới dựa trên một tài liệu Xml đã có
- Trích rút thông tin
- Tái cấu trúc
* Tạo nút và thuộc tính
Vấn đề :
Cần tạo thẻ mới X cùng với các thuộc tính trong tập tin xml kết xuất
Hướng giải quyết :
Cách 1 : Tạo lập trực tiếp thẻ mới X trong chương trình Xslt ( tương tự như sao5n thảo tập tin XML Cách 2 : Sử dụng các thẻ xử lý xsl:element , xsl:attribute
Thẻ xsl:element
Ý nghĩa :
Cho phép tạo thẻ mới trong tập tin Xml kết xuất
Cú pháp :
Các thẻ xử lý tạo thuộc tính ( nếu có ) Các thẻ khác
Thẻ xsl:attribute
Ý nghĩa :
Cho phép tạo thuộc tính của một thẻ trong tập tin Xml kết xuất
Cú pháp :
Thẻ xử lý kết xuất giá trị của thuộc tính
Các thẻ khác
* Sao chép nút
Vấn đề :
Cần tạo thẻ kết xuất trong tập tin xml kết xuất có cùng tên và các thuộc tính với thẻ trong tập tin nguồn
Hướng giải quyết :
Cách 1 : Sử dụng các thẻ xử lý xsl:element , xsl:attribute
Cách 2 : Sử dụng các thẻ xử lý xsl:copy , xsl:attribute
Thẻ xsl:copy
Ý nghĩa :
Cho phép sao chép thẻ từ tập tin xml nguồn ( với nút ngữ cảnh tương ứng thẻ ) sang tập tin xml kết xuất
Cú pháp :
Các thẻ xử lý tạo thuộc tính ( nếu có ) Các thẻ khác
Kết hợp với xsl:attribute để sao chép thẻ - thuộc tính
"@
*" >
* Sao chép nút - thuộc tính - nút con
Vấn đề :
Cần sao chép toàn bộ thẻ X , tất cả thuộc tính của X, tất các thẻ con mọi cấp của X trong tập tin xml nguồn vào tập tin Xml kết xuất
Hướng giải quyết :
Cách 1 : Sử dụng các thẻ xử lý xsl:copy , xsl:attribute
Cách 2 : Sử dụng thẻ xử lý xsl:copy-of
Thẻ xsl:copy-of
Ý nghĩa :
Cho phép sao chép toàn bộ thẻ X , tất cả thuộc tính của X, tất các thẻ con mọi cấp của X trong tập tin xml nguồn vào tập tin Xml kết xuất
Cú pháp :
* Sắp thứ tự các nút
Vấn đề :
Cần sắp thứ tự danh sách các thẻ X của tập tin xml kết xuất
Hướng giải quyết :
Sử dụng thẻ xử lý xsl:sort kết hợp với xsl:apply-templates
Thẻ xsl:sort
Ý nghĩa :
Cho phép sắp thứ tự danh sách các thẻ X của tập tin xml kết xuất
Cú pháp : Sắp tăng
Sắp giảm
Kết hợp với xsl:apply-templates để tiến hành sắp thứ tự các kết quả sau khi thực hiện so khớp các hàm/mẩu
......
Với tập tin Xml Ket_qua_Olympic.xml
678d
Đoạn chương trình XSL sau sắp xếp các quốc gia giảm dần theo thứ tự ưu tiên
- Ứu tiên 1 : Số huy chương vàng
- Ứu tiên 2 : Số huy chương bạc
- Ưu tiên 3 : Số huy chương đồng
"http://www.w3.org/1999/XSL/Transform
">
"@So_vang"
/>
"@So_bac
" />
"@So_dong"
/>
"@*
"/>
Bài tập
* Tích 2 phân số
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin về 2 phân số
- Kết xuất : Trang Web thể hiện kết quả nhân 2 phân số
với phân số 4/7, 5/11
Kết xuất sẽ là
Kết quả tính tích 2 phân số 1/7 và 5/11
4/7*5/11=20/77
* Phương trình đường thẳng
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin về các hệ số của phương trình đường thẳng trong mặt phẳng
- Kết xuất : Trang Web thể hiện kết quả là phương trình đường thẳng
Với giá trị các hệ số 2,3,4
Kết xuất sẽ là : Phương trình đường thẳng 2x + 3y + 4=0
Vời giá trị các hệ số 7,-3
Kết xuất sẽ là : Phương trình đường thẳng 7x - 3y =0
* Phương trình đường tròn
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin về tọa độ tâm và bán kính của một đường tròn
- Kết xuất : Trang Web thể hiện kết quả là phương trình đường tròn
Với giá trị các tọa độ tâm 4,5 và bán kính 3
Kết xuất sẽ là : Phương trình đường tròn + = 9
Với giá trị các tọa độ tâm -2,3 và bán kính 7
Kết xuất sẽ là : Phương trình đường tròn + = 49
* Đề trắc nghiệm
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin về đề trắc nghiệm
- Kết xuất : Trang Web thể hiện đề trắc nghiệm
* Hồ sơ học sinh
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin về hồ sơ học sinh bao gồm : Họ và tên , giới tính, ngày sinh , địa chỉ
- Kết xuất :
a) Trang Web thể hiện hồ sơ học sinh dạng xem
b) Trang Web thể hiện hồ sơ học sinh dạng nhập liệu ( cập nhật)
* Bảng xếp hạng Olympic
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin kết quả thi đấu Olympic các quốc gia
- Kết xuất :
a) Trang Web thể hiện bảng kết quả thi đấu
b) Trang Web cho phép cập nhật số huy chương vàng, bạc, đồng
* Hồ sơ nhân viên
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin về hồ sơ nhân viên với
+ Thông tin bao gồm : Họ và tên, Giới tính , Ngày sinh, Địa chỉ , Đơn vị
+ Tất cả các thông tin đều biểu diễn dưới dạng thẻ con
- Kết xuất : Tập tin Xml
a) Tất cả các thông tin đều biểu diễn dạng thuộc tính
b) Tất cả các thông ngoại trừ đơn vị đều biểu diễn dạng thuộc tính
* Trường - khối - lớp
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin tổ chức trường , các khối của trường, các lớp của khối
- Kết xuất :
a) Tập tin Xml chỉ bao gồm các lớp có sỉ số trên 30
b) Tập tin Xml chỉ bao gồm các khối có hơn 5 lớp
* Bảng phân công giáo viên
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin bảng phân công các giáo viên của một trường
- Kết xuất :
a) Tập tin Xml chỉ bao gồm danh sách các bộ môn cùng với số lượng các giáo viên
b) Tập tin Xml chỉ bao gồm danh sách các giáo viên được phân công dạy trên 2 lớp
* Cây số nguyên
Yêu cầu :
Viết chương trình XSLT cho phép tạo kết xuất từ dữ liệu nguồn
- Dữ liệu nguồn : Tập tin xml biểu diễn thông tin cây các số nguyên
- Kết xuất :
a) Tập tin Xml chỉ bao gồm danh sách các nút lá
b) Tập tin Xml chỉ bao gồm danh sách các nút có giá trị từ 1 đến 10
c) Tập tin Xml là tập tin nguồn sau khi bỏ đi các nút lá
d) Tập tin Xml là tập tin nguồn sau khi bỏ đi tất cả các nút con cấp 1 ( con của gốc )
e) Tập tin Xml là tập tin nguồn sau khi sắp thứ tự tăng các nút cùng cha