Có cách nào để lấy đường dẫn thư mục hiện tại từ trong tệp xslt không?
Cần nó để xác định vị trí xml và xslt khác file
Không cần bất kỳ chức năng mở rộng hoặc thậm chí các thông số để làm điều đó!
Bất kỳ tương URL được sử dụng trong href
thuộc tính của một lệnh <xsl:import>
hoặc <xsl:include>
được giải quyết dựa trên URL của kiểu XSLT hiện tại - nó chỉ cần có một URL, được quy định như vlearly đúng trong câu hỏi trên. Điều này rất thuận tiện trong việc nhập/bao gồm các bảng định kiểu XSLT.
Chức năngdocument()
cũng sẽ giải quyết một URL có liên quan theo cách tương tự, do đó làm cho bất kỳ tài liệu XML thêm truy cập sử dụng URL anrelative.
Cuối cùng, đây làan examplecách các cơ sở này đang ồ ạt sử dụng trong một thư viện lớn chức năng XSLT và các mẫu (FXSL 2.x):
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:f="http://fxsl.sf.net/"
exclude-result-prefixes="xs xdt f"
>
<!--
This module contains the FXSL versions of the "standard" XPath functions
These are intended as convenience functions, so that they can be passed
as parameters to other functions (e.g. to f:zipWith())
or curried and passed as parameters (e.g. to f:map())
-->
<xsl:import href="func-curry.xsl"/>
<xsl:import href="func-compose-flist.xsl"/>
<xsl:import href="func-standardArithmeticXpathFunctions.xsl"/>
<xsl:import href="func-standardBooleanXpathFunctions.xsl"/>
<xsl:import href="func-standardStringXpathFunctions.xsl"/>
<xsl:import href="func-standardNodesXpathFunctions.xsl"/>
<xsl:import href="func-standardSequencesXpathFunctions.xsl"/>
<xsl:import href="func-standardAggregateXpathFunctions.xsl"/>
<xsl:import href="func-standardDateTimeXpathFunctions.xsl"/>
<xsl:import href="func-standardXSLTXpathFunctions.xsl"/>
<xsl:import href="func-standardAxisXpathFunctions.xsl"/>
</xsl:stylesheet>
Nguồn
2009-02-13 17:35:09
Không chắc chắn tại sao điều này lại bị bỏ phiếu. Nó thực sự hoạt động. – Tomalak
Xin lỗi vì điều đó. Tôi đã bình chọn nó xuống để sử dụng phần mở rộng không chuẩn, nhưng sau khi thêm câu trả lời của tôi, tôi nhận ra rằng tôi đã đề xuất điều tương tự. Tôi nghĩ rằng không có cách 'chuẩn' nào để làm điều đó. (Ngoại trừ sử dụng thông số) –
Cảm ơn bạn đã giải thích lý do của mình, được đánh giá cao. :-) – Tomalak