<t>
<rendition xml:id="b">color: blue</rendition>
<rendition xml:id="r">color: red</rendition>
<tagUsage gi="p" render="b" />
<tagUsage gi="emph" render="r" />
</t>
如何在tagUsage元素中基於@gi創建一個XSL 1.0密鑰進入再現元素,將rendition/@ xml:id加入tagUsage/@ render?像通過「加入」元素創建xsl鍵
<xsl:key name="rendition-by-tagName"
match="rendition"
use="//tagUsage[@xml:id of rendition = @render of tagUsage]/@gi" />
東西,所以,鑑於「P」鍵將返回藍色rendition
;給予「emph」,鑰匙將返回紅色rendition
。
我認爲Google Chrome使用的任何xslt處理器都存在一個錯誤。在oXygen中的Xalan和Saxon以及Firefox和Internet Explorer中的客戶端處理中,這不起作用:current()不引用匹配的元素。育。 – JPM
@JPM,是的,我也聽說過Chrome的「安全」功能,嚴重限制了客戶端XSLT處理。由於XSLT的實現並不如人意,人們會認真考慮Saxon CE,我相信它在所有五種主流瀏覽器下都是正常的XSLT 2.0處理器。 –
我傾向於認爲這是一個錯誤。我發現@use中的current()在xsltproc和Safari中也失敗了。 Chrome,Safari和xsltproc,我相信,通用的xslt代碼。 – JPM