我知道有是current()
功能來檢索XSL當前節點,但有什麼辦法能在引用來引用「前」和「下一個」節點到當前位置?XSL(T)的電流/上一頁/下一頁
2
A
回答
4
號當前上下文無法知道哪些節點是「下一個」或「上一個」。
這是因爲,例如,應用模板,機制是這樣的:
- 你這樣做:
<xsl:apply-templates select="*" /><!-- select 3 nodes (a,b,c) -->
- 的XSLT處理器進行處理方式(A,B節點列表, C)
- 對於每個這些節點,XSLT處理器選擇的,並執行一個匹配模板
- 當模板被調用時,
current()
節點被定義,並且position()
被定義,但比所述模板具有沒有ķ其他現在執行流程。 - 執行順序是受處理器的喜好,只要結果是保證是相同的。您的(理論上)預測對於一個處理器可能是正確的,而對另一個則是錯誤的。對於像XSLT這樣的副作用免費編程語言,我認爲這樣的知識會是一件危險的事情(因爲人們會開始依賴執行順序)。
你可以使用following::sibling
或preceding::sibling
XPath軸,但是這是不同的東西從知道什麼節點接下來將處理
編輯
上述解釋試圖回答這個問題,因爲它一直問,但OP 意味着有所不同。這是關於僅分組/輸出唯一節點。
按業務方案的要求,這裏的如何使用XPath軸來實現分組的快速演示。
XML(該項目是預先排序):
<items>
<item type="a"></item>
<item type="a"></item>
<item type="a"></item>
<item type="a"></item>
<item type="b"></item>
<item type="e"></item>
</items>
XSLT
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:template match="/items">
<!-- copy the root element -->
<xsl:copy>
<!-- select those items that differ from any of their predecessors -->
<xsl:apply-templates select="
item[
not(@type = preceding-sibling::item/@type)
]
" />
</xsl:copy>
</xsl:template>
<xsl:template match="item">
<!-- copy the item to the output -->
<xsl:copy-of select="." />
</xsl:template>
</xsl:stylesheet>
輸出:
<items>
<item type="a"></item>
<item type="b"></item>
<item type="e"></item>
</items>
1
假設你正在談論在文檔結構下一個和前一個節點,而不是當前的執行流(例如,for-each
環),請參見preceding-sibling
和following-sibling
軸:XPath Axes on W3。
要獲得相同名字的下一個節點:
following-sibling::*[name() = name(current())]
根據上下文,您可能需要在第一部分使用name(.)
。
0
你可以追蹤以前和在後處理變量電流。 也就是說您可以將標籤(i-2),標籤(i-1)和標籤(i)中的標籤一起使用。
只是另一個想法。
問候。
相關問題
- 1. 最後一頁底部的XSL-FO XSL-T頁腳
- 2. 「下一頁繼續」分頁符與xsl
- 3. UIWebview上一頁/下一頁
- 4. 上一頁上一頁上一頁下一頁上一頁上一頁上一頁上一頁上一頁上一頁摩卡
- 5. 頁面上一頁/下一頁PHP MYSQL
- 6. php分頁下一頁上一頁
- 7. JQuery - 獲取循環上一頁/下一頁觸發jcarousel上一頁/下一頁
- 8. 最後一頁的XSL-FO頁腳
- 9. jQuery上一頁()下一頁()問題
- 10. jQuery Cycle Plugin上一頁/下一頁
- 11. 上一頁和下一頁數組
- 12. PagedDataSource不能與上一頁/下一頁
- 13. jCycle上一頁/下一頁功能
- 14. Typo3 - 上一頁和下一頁
- 15. jcycle上一頁/下一頁slide visibiilty
- 16. 秀活動流谷歌加上下一個頁面分頁
- 17. 充電上一頁可變
- 18. 頁面查看器與預覽的上一頁和下一頁
- 19. 將XSL-FO塊放在下一頁上,而不是將它跨頁分割
- 20. 甜蜜頁面jquery上一頁/下一頁按鈕
- 21. 分頁:上一頁和下一頁使用PHP
- 22. Laravel 5下一頁和上一頁分頁
- 23. 分頁/上一頁和下一頁鏈接不顯示
- 24. 上一頁和下一頁按鈕爲html頁面
- 25. 點擊下一頁或上一頁讓頁面滾動
- 26. 上一頁/下一頁10條結果Php分頁
- 27. WordPress分頁上一頁/下一頁箭頭
- 28. 分頁「上一頁」和「下一頁」錯誤
- 29. jquery分頁只顯示上一頁和下一頁
- 30. 頁面ID的數組的下一個/上一個頁面
正如在,我正在處理一個大的排序列表。實施例 <項類型= 「一」> <項類型= 「一」> <項類型= 「一」> <項類型= 「一」> <項類型= 「b」 的> 我希望能夠判斷前一個項目是否是相同的類型,所以我可以制定一些CSS來「組合」它們。 –
James
2009-07-15 16:03:13