4

我正在为我的学士论文尝试使用 XSLT 将一些 XML 数据转换为 HTML。

我的教授希望我也考虑 XSL-FO,或者至少写一些关于它的文字。但我对此很菜鸟。

所以我的问题是:

我可以将 FO 与 HTML 结合起来吗?我可以使用 FO 代替 HTML 和 CSS 吗?如果是,我的浏览器将如何呈现?是否有关于如何使用 FO 将 xml 转换为网页的示例/教程?

4

2 回答 2

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- FO XHTML,反之亦然。您可以利用现有的 XSLT 样式表来执行此操作。

过去,我开发了XSL-FO样式表,然后使用Render-X FO2HTML 样式表XSL-FO转换 XHTML输出。它将<block>元素转换为<div>、等。 <inline><span>

我以前没有使用过它们,但您也可以尝试使用HTML2FO 样式表XHTML输出转换为XSL-FO

开箱即用,您可以获得两种格式的惊人相似的输出,同时维护一个专用于一种特定输出格式的 XSLT 库。

如果您碰巧需要稍微自定义输出(例如XHTML的不同标题内容),那么您只需要导入/扩展转换样式表并为不同的内容覆盖适当的模板。这使维护变得更加容易,因此您不必担心使用基本相同的信息更新多组样式表。

于 2010-05-01T00:32:14.133 回答
5

XSL-FO 仅用于 PDF 显示(这并不严格,但您可以将其作为指导)。所以 HTML 输出和 FO 输出是不相关的。从您的 XML 源,您可以使用 XSLT 生成 XHTMLXSL-FO,但不能同时生成两者。

参见例如 DocBook。它带有几个可以使用的 XSLT 样式表,一个用于 HTML 输出,一个用于 PDF(通过 Apache Fop)。如果您对结果感到满意,可能是另一个问题。

于 2010-04-30T11:55:26.433 回答