[英]Using XSL-FO and HTML?
我正在尝试使用XSLT将一些XML数据转换为HTML用于我的学士论文。
我的教授也希望我考虑XSL-FO,或者至少要写一些关于它的话。 但我非常喜欢这个。
所以我的问题是:
我可以将FO与HTML结合使用吗? 我可以使用FO而不是HTML和CSS吗? 如果是,我的浏览器将如何渲染? 是否有关于如何使用FO将xml转换为网页的示例/教程?
从XSLT生成XSL-FO和XHTML不一定是一种选择。
XSL-FO通常用于生成PDF。 为此,您需要一个XSL-FO引擎 ,例如FOP , RenderX , Antenna House , IBex等。但是,您可以将XSL-FO转换为XHTML ,然后在浏览器中呈现。
通常,让XSLT创建XSL-FO然后转换为XHTML (直接生成XHTML)是不值得的,除非您想要减少工作量创建两种输出格式(PDF和XHTML)。
可以同时创建** XSL-FO和XHTML ,而无需维护两套完整的样式表来在不同的词汇表中创建类似的输出**。
您可以创建主样式表库以生成XSL-FO或XHTML ,然后使用第二个转换从 XSL转换,而不是在一种格式或另一种格式之间进行选择,或者必须维护两个明显不同(但相似)的样式表库。 FO 到 XHTML ,反之亦然。 您可以利用现有的XSLT样式表来执行此操作。
在过去,我开发了XSL-FO样式表,然后使用Render-X FO2HTML样式表将XSL-FO转换为 XHTML输出。 它将<block>
元素转换为<div>
, <inline>
转换为<span>
等。
我之前没有使用它们,但您也可以尝试使用HTML2FO样式表将XHTML outut转换为XSL-FO 。
开箱即用,您可以在两种格式下获得惊人相似的输出,同时保持一个专用于一种特定输出格式的XSLT库。
如果您碰巧需要稍微自定义输出(例如, XHTML的不同标头内容),那么您只需要导入/扩展转换样式表并覆盖不同内容的相应模板。 这使维护变得更加容易,因此您不必担心使用基本相同的信息更新多组样式表。
XSL-FO仅用于PDF显示(这不是严格意义上的,但您可以将其作为指南)。 因此HTML输出和FO输出无关。 从XML源代码中,您可以使用XSLT生成XHTML 或 XSL-FO,但不能同时生成两者。
请参阅DocBook。 它附带了几个可供使用的XSLT样式表,一个用于HTML输出,另一个用于PDF(通过Apache Fop)。 如果您对结果感到满意可能是另一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.