2009-02-24 40 views

Trả lời

15

Không có chức năng như XPath, hoặc gia hạn XSLT để chức năng XPath để làm điều này trong XSLT v1/XPath v1. Có thể không có tệp nào và thậm chí nếu không có lý do gì cho công cụ XSLT có tên tệp đó (xem xét tải nội dung tệp vào bộ đệm, phân tích cú pháp bộ đệm thành DOM và sau đó truyền DOM cho bộ xử lý XSLT).

Bạn sẽ cần chuyển tên tệp vào bộ xử lý để có sẵn dưới dạng tham số trong biến đổi.

+0

Gây phiền nhiễu nếu bạn chỉ muốn có một 'phong cách sử dụng tạo x sheet' bình luận :-( –

+4

-1: có một chức năng như vậy, trong XPath 2.0 (xem t ông trả lời khác) –

+2

@NormanGray: Sự kết thúc của câu hỏi làm cho nó rõ ràng rằng đây là XSLT v1, do đó, sự hiện diện của một chức năng V2 như vậy là không liên quan. – Richard

30

base-uri() là hàm XPath 2.0 chuẩn, vì vậy khi chạy XSLT 1.0 chức năng này sẽ không khả dụng.

Trong XSLT 1.0 tên tệp (của cái gì?) Có thể được chuyển thành tham số để chuyển đổi.

Lưu ý không phải lúc nào cũng có thể tạo tên tệp cho biểu định kiểu hoặc tài liệu XML - hoặc cả hai có thể nằm trong bộ nhớ không có tệp được liên kết.

Không rõ vấn đề phải tạo tên tệp nào.

Dưới đây là làm thế nào để tìm thấy tên tập tin trong XPath 2.0/XSLT 2.0:

Các tên tập tin của tài liệu hiện thời:

base-uri() 

Các tên tập tin của các mô-đun kiểu hiện tại:

base-uri(document('')) 
Các vấn đề liên quan