基本上我想有一個xslt成爲我的'基'xslt,並希望將其鏈接到子xslt文件。我可以將xslt鏈接到另一個xslt嗎?
這可能嗎?
目標是減少代碼重複。
我們將會對各類客戶很多孩子XSLT文件都用自己的格式和其他文本等,不想重複基本代碼爲每個客戶端XSLT。
我知道我們可以根據客戶的類型進行格式化,但這會使xslt混亂。 理想情況下,就像每個客戶的客戶相關代碼一樣。
這不是xslt的做法嗎?我是xslt的新手!
基本上我想有一個xslt成爲我的'基'xslt,並希望將其鏈接到子xslt文件。我可以將xslt鏈接到另一個xslt嗎?
這可能嗎?
目標是減少代碼重複。
我們將會對各類客戶很多孩子XSLT文件都用自己的格式和其他文本等,不想重複基本代碼爲每個客戶端XSLT。
我知道我們可以根據客戶的類型進行格式化,但這會使xslt混亂。 理想情況下,就像每個客戶的客戶相關代碼一樣。
這不是xslt的做法嗎?我是xslt的新手!
<xsl:import href="library/utility-include.xsl" />
href路徑是相對於當前的xsl文件。 <xsl:import/>
documentation。
請記住,您必須編寫導入行作爲<xsl:stylesheet>
或<xsl:transform>
的第一個子元素。它們不能出現在整個文件中。
是的,你可以 - 你可以include
和import
其他XSLTs。
This is a good place to start learning about import
這就是你正在尋找的具體。 include
是不同的但值得了解。
由於所有其他的答案已經指定,有兩個XSLT指令:
和
設計恰好提供這種能力。
您可能會感興趣的是,有完整的庫模板和函數可以在內部導入庫的其他樣式表。庫的樣式表旨在導入用戶的XSLT樣式表中。
例如,確實有看FXSL library在XSLT函數式編程。
所有其他的答案給你足夠的信息,
我想提一個更重要的事情在這裏..你甚至可以「通過(這兩種方式)參數」兩(主叫和被叫之間的文件,如果他們需要共享的任何數據)XSLT文件..
此功能在播放/ XSLT之外版本1.0,您可能需要在未來的重要作用..
:)
是的,你可以使用標籤在不同的XSLT拉:
<xsl:include href="OtherTemplate.xslt" />
有幾個陷阱!所以要小心!
「父級」XSLT將緩存包含的XSLT。因此,如果您對嵌套/包含的XSLT進行更改 - 它不會在父XSLT轉換中直接顯示。我「認爲」這可能與使用XslCompiledTransform有關 - 但不是100%。無論如何,如果您修改父級XSLT,它將刷新緩存。 (這在某些項目中是一個非常惱人的問題)
其次,您可能會遇到$ currentPage參數的問題。它只能在整個XSLT樣式表中聲明一次 - 包括任何「包含」!所以請小心你引用元素的地方!參考here