Cách tiêu chuẩn để chuyển đổi dữ liệu XML sang các định dạng khác là bằng Chuyển đổi ngôn ngữ biểu định kiểu mở rộng [XSLT]. Bạn có thể sử dụng chức năng XSLTRANSFORM tích hợp sẵn để chuyển đổi tài liệu XML thành HTML, văn bản thuần túy hoặc các lược đồ XML khác nhau
XSLT sử dụng biểu định kiểu để chuyển đổi XML thành các định dạng dữ liệu khác. Bạn có thể chuyển đổi một phần hoặc toàn bộ tài liệu XML và chọn hoặc sắp xếp lại dữ liệu bằng cách sử dụng ngôn ngữ truy vấn XPath và các chức năng tích hợp sẵn của XSLT. XSLT thường được sử dụng để chuyển đổi XML sang HTML, nhưng cũng có thể được sử dụng để chuyển đổi các tài liệu XML tuân thủ một lược đồ XML thành các tài liệu tuân thủ một lược đồ khác. XSLT cũng có thể được sử dụng để chuyển đổi dữ liệu XML thành các định dạng không liên quan, như văn bản được phân cách bằng dấu phẩy hoặc các ngôn ngữ định dạng như troff. XSLT có hai lĩnh vực ứng dụng chính
- Định dạng [chuyển đổi XML sang HTML]
- Trao đổi dữ liệu [truy vấn, sắp xếp lại và chuyển đổi dữ liệu từ lược đồ XML này sang lược đồ XML khác hoặc sang định dạng trao đổi dữ liệu như SOAP]
Cả hai trường hợp đều có thể yêu cầu chuyển đổi toàn bộ tài liệu XML hoặc chỉ những phần được chọn của tài liệu đó. XSLT kết hợp đặc tả XPath, cho phép truy vấn và truy xuất dữ liệu tùy ý từ tài liệu XML nguồn. Mẫu XSLT cũng có thể chứa hoặc tạo thông tin bổ sung như tiêu đề tệp và khối hướng dẫn sẽ được thêm vào tệp đầu ra
XSLT hoạt động như thế nào
Biểu định kiểu XSLT được viết bằng Ngôn ngữ biểu định kiểu mở rộng [XSL], một lược đồ XML. XSL là ngôn ngữ mẫu chứ không phải ngôn ngữ thuật toán như C hoặc Perl, một tính năng giới hạn sức mạnh của XSL nhưng làm cho nó phù hợp duy nhất với mục đích của nó. Biểu định kiểu XSL chứa một hoặc nhiều phần tử template
, mô tả hành động cần thực hiện khi gặp một phần tử hoặc truy vấn XML nhất định trong tệp đích. Phần tử mẫu XSLT điển hình sẽ bắt đầu bằng cách chỉ định phần tử đó áp dụng cho phần tử nào. Ví dụ,
tuyên bố rằng nội dung của mẫu này sẽ được sử dụng để thay thế nội dung của bất kỳ thẻ nào gặp phải trong tệp XML đích. Một tệp XSLT bao gồm một danh sách các mẫu như vậy, không theo thứ tự cần thiết
Ví dụ sau hiển thị các phần tử điển hình của mẫu XSLT. Trong trường hợp này, mục tiêu sẽ là các tài liệu XML có chứa thông tin hàng tồn kho, chẳng hạn như bản ghi này mô tả một máy cạo băng
Ice Scraper, Windshield 4 inch
Basic Ice Scraper 4 inches wide, foam handle
3.99
Bản ghi này bao gồm các thông tin như số bộ phận, mô tả và giá của dụng cụ cạo băng kính chắn gió. Một số thông tin này được chứa trong các phần tử, chẳng hạn như . Một số, như số bộ phận, được chứa trong các thuộc tính [trong trường hợp này là thuộc tính
pid
của phần tử ]. Để hiển thị thông tin này dưới dạng trang web, bạn có thể áp dụng mẫu XSLT sau
product ID
product name
price
$
details
Khi bộ xử lý XSLT nhận cả tài liệu mẫu và tài liệu đích ở trên làm đầu vào, nó sẽ xuất tài liệu HTML sau
Ice Scraper, Windshield 4 inch
product ID 100-201-01
product name Ice Scraper, Windshield 4 inch
price $3.99
details Basic Ice Scraper 4 inches wide, foam handle
Bộ xử lý XSLT kiểm tra tài liệu XML đến cho các điều kiện nhất định [thường là một điều kiện cho mỗi mẫu]. Nếu một điều kiện là đúng, nội dung mẫu được chèn vào đầu ra và nếu chúng sai, mẫu sẽ được bộ xử lý chuyển qua. Biểu định kiểu có thể thêm dữ liệu của chính nó vào đầu ra, chẳng hạn như trong gắn thẻ bảng HTML và các chuỗi chẳng hạn như "ID sản phẩm. "
XPath có thể được sử dụng để xác định các điều kiện mẫu, như trong
Ice Scraper, Windshield 4 inch
Basic Ice Scraper 4 inches wide, foam handle
3.99
0 và để chọn và chèn dữ liệu từ bất kỳ đâu trong luồng XML, như trong
Ice Scraper, Windshield 4 inch
Basic Ice Scraper 4 inches wide, foam handle
3.99
0Sử dụng XSLTRANSFORM
Bạn có thể sử dụng hàm XSLTRANSFORM để áp dụng biểu định kiểu XSLT cho dữ liệu XML. Nếu bạn cung cấp cho hàm tên của tài liệu XML và biểu định kiểu XSLT, thì hàm sẽ áp dụng biểu định kiểu cho tài liệu và trả về kết quả