Tài liệu: Một số kỹ thuật xử lý biến đổi tài liệu XML với XSLT

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

Chương trình Xslt sau đây biến đổi tập tin Phieu_thu.xml với tập tin Xml kết xuất có các nút con tươngứng các thuộc tính

 Chương trình Xslt

                        
"http://www.w3.org/1999/XSL/Transform
">

"@Ngay_thu"
 />

"@So_tien"
 />

"@Khach_hang"
 />

* 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

"@
*" >

 

Chương trình sau trích danh sách các khối của tập tin truong.xml

"http://www.w3.org/1999/XSL/Transform
">

"@Ten
"/>

"@Ten
"/>

 

Chương trình Xslt sau cho phép biến đổi tập tin Xml bất kỳ theo qui tắc : Tất cả thuộc tính sẽ biến thành thẻ con

"http://www.w3.org/1999/XSL/Transform
">

"@*"
 >

* 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 :

Cho tập tin xml Bang_phan_cong.xml

Đoạn chương trình sau cho phép tái cấu trúc tập tin Bang_phan_cong.xml với thẻ MON chuyễn thành thuộc tính Bo_mon của thẻ GIAO_VIEN

"http://www.w3.org/1999/XSL/Transform
">

"@Ten
"/>

"@Ten
"/>

/@Ten
"/>

* 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

XML --- > HTML

* 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 (x4)2 size 12{ \( x - 4 \) rSup { size 8{2} } } {}+ (y5)2 size 12{ \( y - 5 \) rSup { size 8{2} } } {}= 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 (x+2)2 size 12{ \( x+2 \) rSup { size 8{2} } } {}+ (y3)2 size 12{ \( y - 3 \) rSup { size 8{2} } } {}= 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

XML - XML

* 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

.....

Ví dụ :

Chương trình Xslt sau sẽ xuất bảng đơn giá thuê phòng từ tập tin Bang_don_gia.xml

"http://www.w3.org/1999/XSL/Transform
">

Bảng đơn giá thuê phòng 

Tài liệu
Nguyễn Tiến Huy

Tóm tắt nội dung

-
Một số kỹ thuật xử lý biến đổi tài liệu XML với XSLT

Nội dung

XML -- > HTML

Mục tiêu :

Trình bày một số kỹ thuật cơ bản cho phép thể hiện nội dung tập tin Xml trên trang Web

với tập tin Xml Don_thuc.xml

chương trình Xslt sau sẽ cho phép thể hiện đơn thức dưới dạng trình bày trên Web 4x6

Chương trình Xuat_don_thuc.xslt

"http://www.w3.org/1999/XSL/Transform
">

 P(x)=

"@He_so"
 /> x

"@So_mu
"/>

* XML -- > Thẻ select

Vấn đề :

Cần xuất danh sách chọn trên trang Web từ một danh sách các nút của tập tin Xml trong một ứng dụng

Web

Xuất danh sách các mặt hàng

Xuất danh sách các đơn vị

Xuất danh sách các khối

....

Hướng giải quyết :

Sử dụng thẻ select , option của ngôn ngữ Html

....

....

Thẻ xử lý kết xuất giá trị

Chương trình Xslt sau sẽ xuất danh sách chọn các đơn vị từ tập tin Cong_ty.xml

"http://www.w3.org/1999/XSL/Transform
">

 Danh sách đơn vị :

"@Ten
"/>

* XML --- > thẻ ul,ol

Vấn đề :

Cần xuất danh sách trình bày nội dung và các mục trên trên trang Web từ một nút với nhiều nút con củatập tin Xml trong một ứng dụng Web theo dạng

Nội dung 1

Mục con 11

Mục con 12

....

Xuất nội dung câu hỏi trắc nghiệm

Xuất tổ chức trường -khối - lớp theo dạng cây

....

Hướng giải quyết :

Sử dụng thẻ ul kết hợp li với các mục không có thứ tự

Hay sử dụng thẻ ol kết hợp li với các mục có thứ tự

....

.... hay

....

....

  • Thẻ xử lý kết xuất giá trị

    Giả sử đã có tập tin Cau_hoi.xml với nội dung như sau

    Chương trình Xslt sau sẽ trình bày câu hỏi trên Web

    Câu hỏi trắc nghiệm

    Nước Việt Nam hình chử gì ? Chử M

    Chử S Chử K Chử R

    "http://www.w3.org/1999/XSL/Transform
    ">

    Câu hỏi trắc nghiệm 

    "@Noi_dung"
     />

  • "@Noi_dung"
     />

    Chương trình Xslt sau sẽ trình bày tổ chức các khối lớp của một trường theo dạng cây phân cấp

    "http://www.w3.org/1999/XSL/Transform
    ">

    "@Ten
    " />

    "@Ten
    " />

    "@Ten
    " />

    * XML -- > Thẻ Table

    Vấn đề :

    Cần xuất danh sách dạng lưới trên trang Web từ một danh sách các nút của tập tin Xml trong một ứng dụng Web

    Xuất danh sách các mặt hàng : tên , Đơn giá

    Xuất danh sách các nhân viên : Họ tên , Ngày sinh , Giới tính

    Xuất danh sách các môn học : tên môn , Số tiết LT, Số tiết thực hành

    ....

    Hướng giải quyết :

    Sử dụng thẻ table , tr, td của ngôn ngữ Html

    ....

    ....

    Thẻ xử lý kết xuất giá trị tại cột thứ 1

    Thẻ xử lý kết xuất giá trị tại cột thứ 12

    Loại phòng

    Đơn giá

    "@Ten
    "/>

    "@Don_gia
    "/>




    Nguồn: voer.edu.vn/m/mot-so-ky-thuat-xu-ly-bien-doi-tai-lieu-xml-voi-xslt/4d6e22e7


    Chưa có phản hồi
    Bạn vui lòng Đăng nhập để bình luận