【问题标题】:Generating XSL FO生成 XSL FO
【发布时间】:2010-01-08 09:07:11
【问题描述】:

是否有任何 XSLT 解析器(如 MSXML 4.0)帮助在 XSL 转换过程中检索 XSL FO 文档?

换句话说,我如何从 XML 和 XSL 文件中获取 XSL FO 文件?

谢谢, 艾薇

【问题讨论】:

  • XSL 样式表处理器接受 XML 格式的文档或数据和 XSL 样式表,并生成该样式表设计者想要的 XML 源内容的表示。但是,建议使用 XSLT 来获取 XSL-FO 吗?我在这里看到一个矛盾或混合的词。
  • 请尝试澄清您正在寻找的确切内容。 (XSL-FO 是一个 XSL 样式表,它根据 XSL-FO 规范从源 XML-doc 生成 XML)
  • 我正在尝试查看是否可以检索 XSL-FO 格式的 XML 文件,该文件由 XSL 样式表处理器使用 XML 文件和 ANY(不是 XSL-FO)为每个 XSLT 自动(内部)生成但任何)XSL 文件。
  • aiw33k 您不会从 XML 中“获取”XSL:FO。您必须通过使用 XSL 将 XML 转换为 XSL:FO 来实现它。 (见我的帖子)。

标签: xml msxml xsl-fo


【解决方案1】:

你不能自动。

最初的 XSL 规范被分成 3 个独立的规范:

  1. 转换 (XSLT)
  2. 格式化/显示文档 (XSL:FO)
  3. 查询 xml (XPATH)

XSL:FO 应该被视为用 XML 描述文档的一种方式。 XSLT 可以帮助您生成这样的 XML 结构,但它不会自动生成。

流程如下:

XML input => XSLT => XML output.

XSL:FO 只是 XML 输出而已。

流量不是

XML input => XSLT => XML output & XSL:FO.

我认为混淆的根源在于 XSL 一词包含 XSLT/XSLFO 和 XPATH 但通常 XSL 被用作 XSLT 的同义词。

w3schools 有一节介绍这两个单独的规范如何相互帮助:

http://www.w3schools.com/xslfo/xslfo_xslt.asp

【讨论】:

  • xlm:FO 也是一个xml文档,可以生成。
  • 当然,我知道并且我的回答反映了这一点。他的问题似乎表明,如果您有任何 XML 和任何 XSLT,您如何从中获得 XSLFO。实际上 XSLT 应该在哪里生成 XSLFO。
  • 我想我们误会了,抱歉。
  • 没有问题,不知道是不是你投了反对票,但如果你撤消它会很友好:)
  • 我做了,但在编辑帖子之前无法撤消,所以也许添加一些空格:)
【解决方案2】:

您可以为此使用简单的 xml 转换。

例如:

Source source = new StreamSource(new File("imput.xml"));
Source style = new StreamSource(new FileInputStream("style-fo.xsl"));       
TransformerFactoryImpl saxon = new TransformerFactoryImpl();
Transformer transformer = saxon.newTransformer();
transformer.transform(source, new StreamResult(System.out));

将带有 xsl-fo 样式表的 in.xml 文档转换为 xml-fo 并在控制台上打印。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多