2010-08-12 30 views
11

nói rằng, nếu có tệp gọi là data.xml và tệp là format.xsl (hoặc là format.xml?), Là để chuyển đổi dữ liệu XML và định dạng dữ liệu đó cũng như sử dụng CSS thì trình duyệt nào có thể hiển thị tệp đó? Tệp nào sẽ được mở? (Các .xsl hoặc .xml?)Trình duyệt nào có thể hiển thị dữ liệu XML được XSLT chuyển đổi?

Thật sự tôi đã thấy trong ví dụ khác mà dòng đầu tiên file XSLT là để href="format.xsl", vì vậy tôi nghĩ các tập tin XSLT đã là .xsl? thì làm thế nào nó liên kết đến một tập tin .xsl khác? Có bao nhiêu tệp, 2 hoặc 3?

Trả lời

11

Có hai tệp, một tệp .xml chứa dữ liệu và một tệp .xsl với tập lệnh XSLT để chuyển đổi. Kể từ tháng 8 năm 2010, tất cả các trình duyệt hàng đầu đều hỗ trợ chuyển đổi XSLT phía máy khách. Mở tệp .xml và tệp .xsl được liên kết sẽ được sử dụng. Thông thường, tập lệnh sẽ tạo một tài liệu html được hiển thị khi đang di chuyển. Việc chuyển đổi cũng có thể được thực hiện bởi các máy chủ với PHP vv
Gắn một kịch bản XSLT, file .xml cần một dòng như thế này:

<?xml-stylesheet type="text/xsl" href="script.xsl" ?> 
8

Nhiều trình duyệt hỗ trợ hướng dẫn xử lý biểu định kiểu XML. Nếu nó được bao gồm trong một tệp XML và bạn mở XML này bằng trình duyệt của bạn, trình duyệt sẽ tải XSLT được chỉ định, chạy nó với tệp XML làm đầu vào và hiển thị đầu ra của XSLT thay vì tài liệu XML gốc. Bạn có thể tìm thấy thông số kỹ thuật tại đây: http://www.w3.org/TR/xml-stylesheet/

Wikipedia's XSLT entry có ví dụ về cách sử dụng hướng dẫn xử lý. Về cơ bản bạn chỉ cần thêm dòng này ở phía trên cùng của tập tin XML của bạn (sau khi < xml> prolog?), Với 'example2.xsl' là một đường dẫn đến file XSLT của bạn:

<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>

Firefox và cả IE nên hỗ trợ điều này (và có lẽ nhiều trình duyệt khác, nhưng tôi chưa bao giờ thử - tính năng này không được sử dụng thường xuyên).

+0

vừa thử Safari và Chrome hiện tại và cả hai đều hỗ trợ nó, mặc dù Chrome không mở nó nếu nó là tệp cục bộ. –

+1

Nếu XSL đang chuyển đổi XML thành XHTML, Chrome sẽ mở/chuyển đổi tệp cục bộ nếu không gian tên XHTML được thêm vào XSL. Tôi đã phải làm điều tương tự cho FireFox trong các tệp XML cục bộ. Xem: http://stackoverflow.com/questions/2981524/how-can-i-make-xslt-work-in-chrome –

1

Firefox và Internet Explorer (chắc chắn phiên bản 6 trở lên, có khả năng các phiên bản cũ hơn) có thể phân tích cú pháp XML/XSL tốt. Bạn thực sự có thể viết một trình phân tích cú pháp phía máy khách trong Javascript, cả hai trình duyệt này hoạt động tốt với điều đó.

Có thể bạn sẽ muốn đảm bảo rằng bạn không sử dụng bất kỳ phần cụ thể nào của nhà cung cấp, tho, có thể phá vỡ tính tương thích (chẳng hạn như < msxsl: script >). Điều tương tự cũng có thể áp dụng cho các trình phân tích cú pháp khác (ví dụ hàm node-set(), không giống nhau giữa MSXML tất cả các trình phân tích cú pháp).

Trong tệp XSL của bạn, bạn có thể bao gồm một tệp XSL khác. Hoặc nhiều tệp XSL. Bằng cách đó, bạn có thể sử dụng lại các mẫu từ một tệp XSL khác.

1

On mac, tôi đã cố gắng mở tập tin XML với Chrome và Safari và không hiển thị bất cứ điều gì.

Giải pháp phù hợp với tôi là chạy xsltproc từ dòng lệnh để đầu tiên nhận HTML và sau đó mở HTML bằng trình duyệt.Đây là lệnh:

xsltproc <XSL file> <XML file> > test.html 

Bây giờ mở test.html với trình duyệt.

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