2012-12-27 23 views
2

這是一個「最佳設計方法」問題,而不是編碼問題。我正在尋找在XSLT中過濾數據的最佳方法。我有一個從XML,XSLT和CSS生成的博客。每篇博客文章屬於下一個類別 - 1周,2周或3周XSLT:給出不同的數據視圖

enter image description here

目前,我正在顯示在旁邊的所有類別。當我點擊WEEK1時,我只想顯示第1周的帖子。這是否有辦法在沒有每週有XML文件的情況下執行此操作?

作爲副業......這是XSLT可以做什麼的演示。像php這樣的東西會更適合這項工作,但這需要用XSLT/HTML/JavaScript/CSS來完成。

如果問題不清楚,請提問,我會盡我所能來重述它。

回答

1

可能有很多方法。

最快的應該是:給每一個崗位相關一週的className(如post week1post week2等)

當你點擊一個側面的鏈路上,給所有帖子的共同anchestor也類,與點擊周有關,例如posts week1

你現在需要的是CSS的一點點:

.posts .post{ 
    display:none; 
} 
.posts.week1 .post.week1, 
.posts.week2 .post.week2, 
.posts.week3 .post.week3{ 
    display:block; 
} 
+0

最快爲誰? XML越大,頁面加載和處理的速度越慢。 – DanMan

+0

我認爲他可能意味着最快的開發時間。不管怎樣,謝謝!沒有想到這種方法。 – David

+0

起初我並不是指開發時間。當使用多個xml文件不是一個選項時,頁面的加載過程當然會增加,但這對我的建議沒有任何影響,因爲它總是隻設置1個節點的className,無論條目多麼可能博客會有。任何其他方法都需要一種循環,什麼會受到xml文件大小的影響。 –

0

如果你想證明什麼XSLT可以做,也許是一個簡單的XPath查詢像//WEEKS[.="WEEK1" ]例如可能就足夠了

+0

事實上,僅僅解決你的問題還不夠,我認爲你只需要「Week1」:)另一種方法是在你單擊時運行JavaScript的類別上編寫鏈接。我看到[this](http://stackoverflow.com/questions/6011013/using-a-single-xsl-file-to-display-different-elements)或[that](http://stackoverflow.com/questions/10260331/mouse-click-xslt)與此問題 – mdelpeix

0

這就是XLink會派上用場的地方,不幸的是瀏覽器的支持仍然是可悲的。

我想嘗試的是用JS和XPath預處理XML,所以它只包含你想要的那一週。然後只發送該XML到XSLTProcessor(),所以它只會放出那些。然而,你可能必須在XSL之外組裝整個HTML文檔 - 不確定。

您也可以send XML parameters as parameters into the processor並在您的轉換中使用它們。

但是最終,如果你只是展示一小部分XML,那麼通過網絡發送整個XML仍然是低效的。因此,只生成實際需要的XML的服務器端解決方案會更好。

最後但並非最不重要的,也許看看Saxon-CE

相關問題