2010-06-09 34 views
18

Bạn sử dụng những gì trong các ứng dụng của mình để chuyển đổi dữ liệu XML sang các kiểu dữ liệu khác? TẠI SAO?XQuery vs XSLT để chuyển đổi dữ liệu

+1

Câu hỏi hay: +1. Xem câu trả lời của tôi cho một ý kiến ​​được thông báo. –

Trả lời

13

Trong khi XQuery có thể được sử dụng cho các phép biến đổi đơn giản, thiếu sức mạnh và tính linh hoạt của XSLT (đặc biệt là các mẫu và hướng dẫn <xsl:apply-templates>).

XSLT là ngôn ngữ được thiết kế đặc biệt để xử lý cấu trúc cây. Nó vẫn là tốt nhất khi làm điều này.

Trong trường hợp truy cập cơ sở dữ liệu XML, sẽ là một quyết định tốt để sử dụng (hiệu quả) XQuery để trích xuất các nút XML cần thiết và sau đó thực hiện chuyển đổi với XSLT từ đây. Một số bộ xử lý XSLT 2.x/XQuery cho phép điều này (thông qua các phần mở rộng) ngay cả bây giờ. Làn sóng tiếp theo của các đặc tả XSLT 2.x/XQuery 1.x hầu hết có thể làm cho khả năng tương tác này trở thành một tính năng chính thức của các ngôn ngữ này.

-4

Nó phụ thuộc vào loại "chuyển đổi" bạn cần, XQuery cho phép bạn thực hiện các truy vấn trên dữ liệu XML của bạn, hơi giống SQL.

XSLT cho phép bạn áp dụng kiểu trên XML, như CSS thực hiện với HTML.

+8

Tôi hoàn toàn không đồng ý với tuyên bố "XSLT cho phép bạn áp dụng một kiểu trên XML, giống như CSS làm với HTML." XSLT không phải là XML mà CSS là HTML. CSS cho bộ xử lý biết cách hiển thị HTML. XSLT được sử dụng để biến đổi dữ liệu thành một thứ khác. Bạn có thể sử dụng XSLT để chuyển đổi XML thành HTML để một bộ xử lý biết cách dữ liệu sẽ được hiển thị, nhưng cách trình xử lý hiển thị kết quả HTML không liên quan gì đến XSLT. –

+0

XSLT phức tạp hơn nhiều so với CSS. Với XSLT, bạn có thể thêm/xóa các phần tử và các thuộc tính vào hoặc ra khỏi tệp đầu ra. Bạn cũng có thể sắp xếp lại và sắp xếp các phần tử, thực hiện các kiểm tra và đưa ra quyết định về yếu tố nào để ẩn và hiển thị và nhiều yếu tố khác. – Premraj

0

Nếu bạn nhìn vào số Wikipedia Entry, chúng có phần so sánh hai.

Theo quan điểm của tôi, tôi thấy XSLT là lớp trình bày có thể lập trình cho dữ liệu.

Các vấn đề liên quan