我已經感興趣地閱讀了Web上可用的技術,以便從包含使用XSL的重複項的XML文件中提取項目的唯一列表。XSL:組合分組和呼叫模板
這些範圍分成2類: 1)Muenchian方法(例如:http://www.jenitennison.com/xslt/grouping/) 2)或前一同胞查找 這些都依賴於一個XPath表達式由選擇數據分組。
但是,在我試圖解決的XML文件中,數據不是「本地」存在於XML文件中的。我正在使用xsl:模板來計算來自我的元素的一些聚合數據。我想根據彙總的數據進行分組。
比如我有:
<filmsreview>
<record><data name='movie'>Star Wars</data><data name='ratings'>John:Good, Mary:Good</data></record>
<record><data name='movie'>Indiana Jones</data><data name='ratings'>John:Good, Mary:Bad, Helen:Average</data></record>
<record><data name='movie'>Titanic</data><data name='ratings'>John:Bad, Helen:Good</data></record>
</filmsreview>
我知道數據的結構化是不完美的,並通過創建子元素我可以做一些更容易,但我不能輕易更改數據源,讓我們以此爲挑戰。
而且我想建立一個回顧,我有約翰的不同評級: 約翰的評級: 好 壞
我有一個XSL:模板,可以採取記錄元素,並返回約翰的評價此記錄: 例子:
<xsl:template name="get_rating">
<xsl:param name="reviewer" />
<!-- I use some string manipulation, and xsl:value-of to return the review for John-->
</xsl:template>
我就可以把它叫做一個XSL在:對,各領約翰的審查詳盡的清單。但我無法將此調用與任何方法結合以獲得唯一值。
我是否必須使用中介XSL將我的XML文件轉換爲更具結構化的方式?或者我可以一步到位?
非常感謝 傑拉德
謝謝,此答案幫助我找到解決方案。 可能完成答案有幾件事情: 以下屬性必須被添加到了xsl:stylesheet元素 的xmlns:msxsl =「甕:架構 - 微軟COM:XSLT」 以下關鍵需要定義: 可以通過以下循環獲取唯一項: xsl:for-each> –
2009-08-19 14:48:42