从 XSLT 生成 XSL-FO 和 XHTML 不一定是非此即彼的选择。
XSL-FO一般用于生成PDF。为此,您将需要一个XSL-FO 引擎, 例如FOP, RenderX, 天线屋, IBex等等。但是,您可以转换XSL-FO into XHTML然后在浏览器中渲染。
一般来说,不值得这么麻烦地创建 XSLTXSL-FO然后转换成XHTML(直接生成 XHTML),除非您想以更少的工作量创建两种输出格式(PDF 和 XHTML)。
可以创建 **XSL-FO and XHTML同时无需维护两套完整的样式表即可在不同的词汇表中创建类似的输出**。
您不必在一种格式或另一种格式之间进行选择,也不必维护两个截然不同(但相似)的样式表库,您可以创建主样式表库来生成XSL-FO or XHTML然后使用第二个变换来转换from XSL-FO to XHTML反之亦然。您可以利用现有的 XSLT 样式表来执行此操作。
过去我已经开发过XSL-FO样式表,然后使用Render-X FO2HTML 样式表来转换XSL-FO to XHTML输出。它转换<block>
元素进入<div>
, <inline>
into <span>
, etc.
我以前没有使用过它们,但你也可以尝试使用HTML2FO 样式表转换XHTML输出到XSL-FO.
开箱即用,您可以获得惊人的相似输出both格式,同时维护一个专用于的 XSLT 库one特定的输出格式。
如果您碰巧需要稍微自定义输出(例如,不同的标题内容XHTML)那么您只需要导入/扩展转换样式表并覆盖不同内容的适当模板。这使得维护变得更加容易,因此您不必担心使用基本相同的信息更新多组样式表。