代码之家  ›  专栏  ›  技术社区  ›  buggy1985

使用xsl-fo和html?

  •  4
  • buggy1985  · 技术社区  · 15 年前

    我正试图用xslt将一些xml数据转换成html,以完成我的学士学位论文。

    我的教授希望我也考虑xsl-fo,或者至少写一些关于它的文字。但我不知道。

    所以我的问题是:

    我能把fo和html结合起来吗?我可以使用HTML和CSS的列表吗?如果是,我的浏览器将如何渲染?有没有关于如何用fo将xml转换成web页面的示例/教程?

    2 回复  |  直到 10 年前
        1
  •  5
  •   topskip    15 年前

    xsl-fo仅用于pdf显示(严格来说这不是真的,但您可以将其作为指导原则)。所以html输出和fo输出是不相关的。从xml源代码中,可以使用xslt生成xhtml xsl-fo,但不能同时使用两者。

    请参见例如DocBook。它附带了几个可以使用的xslt样式表,一个用于html输出,另一个用于pdf(通过apache fop)。如果你对结果满意的话,可能是另一个问题。

        2
  •  8
  •   Mads Hansen    15 年前

    从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 stylesheet 转换 XSL—FO XHTML 输出。它改变了 <block> 元素 <div> , <inline> 进入之内 <span> 等。

    我以前没用过,但你也可以试试 HTML2FO stylesheets 转换 XHTML 向外进入 XSL—FO .

    开箱即用,在 二者都 在维护专用于 特定输出格式。

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