在我們的工作中,我們有一個自定義框架,可幫助我們爲客戶服務構建快速而強大的頁面。這個框架的組成部分之一是一個特殊的「細節」功能,它允許您選擇列表中的特定項目,單擊它並查看其詳細信息。這是因爲Detail組件接收預定義的XML結構並使用XSLT分析它,這允許它在不同的數據選項卡中顯示數據,顯示圖像或彙總特定數據以及其他功能。在另一個內部動態導入XSLT
我們的要求是,我們希望能夠添加預定義XML結構之外存在的新選項卡,例如,我們可以添加自定義圖表或任何其他特定的數據顯示。
要做到這一點,我們想出一個可行的解決方案將是使特殊片預定義的XML結構中,有兩個新的屬性:
類型:它告訴父母XSLT,這個選項卡應不用標準的XSL轉換解析。 (例如:「文字」)
transformationSource:它告訴父XSLT它應包含/導入以轉換此特定選項卡的新XSLT。 (例如:「newTransformation.xslt」)
這可能是動態的嗎?沿着這條路線的東西:
<div>
<xsl:for-each select="Tab">
<xsl:choose>
<xsl:when test="@type='Literal'">
<xsl:include href=<xsl:value-of select='@transformationSource'/>
</xsl:when>
<xsl:otherwise> --do what it does everytime
<xsl:apply-templates select="Header" />
<xsl:apply-templates select="Data" />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</div>
我們有兩個問題:
我們不能做一個
value-of xsl
命令另一個XSL命令裏面我們不能使用include或在非根html組件中導入功能,這意味着它不能在div,表格或行或任何內容中使用。
任何想法將不勝感激。
預先感謝您:)
我不明白你爲什麼不總是包含樣式表模塊,讓處理器決定哪些規則適用取決於關於該屬性的模式。 – 2011-04-28 20:05:08