2010-04-30 110 views
4

我試圖用XSLT將一些XML數據轉換爲HTML用於我的學士論文。使用XSL-FO和HTML?

我的教授希望我也考慮XSL-FO,或者至少寫一些關於它的文字。但我非常喜歡這個。

所以我的問題是:

我可以結合FO和HTML嗎?我可以使用FO而不是HTML和CSS嗎?如果是,我的瀏覽器將如何渲染?是否有任何示例/教程如何將XML轉換爲帶有FO的網頁?

回答

5

XSL-FO僅用於PDF顯示(這不完全正確,但您可以將其作爲指導原則)。所以HTML輸出和FO輸出不相關。從您的XML源代碼中,您可以使用XSLT生成XHTML XSL-FO,但不能同時生成XSL-FO。

參見例如DocBook。它帶有幾個準備使用的XSLT樣式表,一個用於HTML輸出,另一個用於PDF(通過Apache Fop)。如果你對結果感到滿意可能是一個不同的問題。

8

從XSLT生成XSL-FO和XHTML不一定是一種選擇。

XSL-FO通常用於生成PDF。對於您將需要一個XSL-FO引擎,如FOPRenderXAntenna HouseIBex等。但是,你可以XSL-FO轉換成XHTML,然後在瀏覽器中呈現。

一般情況下,它不會是值得冒這個險讓你的XSLT創建XSL-FO,然後轉換成XHTML(剛纔生成的XHTML直接),除非你想創建兩個輸出格式(PDF和XHTML )減少工作量。

它可以同時創建** XSL-FOXHTML同時不保持樣式表的兩套完整的創建在不同的詞彙相似的輸出**。

不是一個格式或其它之間進行選擇,或有維持兩個明顯向度(但類似)樣式庫,你可以創建你的主樣式庫來產生任何XSL-FOXHTML,然後用第二次轉換XSL-FOXHTML反之亦然。 您可以利用現有的XSLT樣式表來執行此操作。

在我所研製XSL-FO樣式表,然後過去使用的Render-X FO2HTML stylesheetXSL-FO轉換爲XHTML輸出。它將<block>元素轉換成<div>,<inline>轉換成<span>等。

我以前沒有使用過他們,但你也可以嘗試使用HTML2FO stylesheetsXHTML outut轉換成XSL-FO

開箱即用,你可以在格式得到驚人相似的輸出,同時保持一個XSLT庫致力於一個特定的輸出格式。

如果你碰巧需要稍微定製輸出(如不同的頁眉內容XHTML),那麼你只需要導入/延長轉換樣式表和覆蓋爲不同的內容相應的模板(一個或多個)。這使得維護更容易,因此您不必擔心使用基本相同的信息更新多組樣式表。