如何使用Saxon java api将xsl:result-document转换为多个文件?

时间:2017-09-19 13:20:39

标签: xml xslt-2.0 saxon

有一个带xsl的.xsl文件:result-document thaht必须生成多个html文件。如何使用saxon s9api处理这个xsl?

这是我以前尝试转换xsl文件的内容。

    Processor processor = new Processor(false);
    XsltCompiler compiler = processor.newXsltCompiler();
    XsltTransformer transformer = compiler. compile(new StreamSource(new File(xlsFilePath))).load();
    XdmNode source = processor.newDocumentBuilder().build(new StreamSource(new File(xmlFilePath)));
    transformer.setInitialContextNode(source);
    transformer.transform();

但我收到了:

  

IllegalStateException:未提供目的地

阅读文档我必须指定destionation如果我想覆盖它,但在我的情况下,这是在xsl:result-document的href中指定的。

那么如何使用saxon java s9api来转换这个xsl文件呢?

<xsl:output method="html"/>
<xsl:template match="/">
 <xsl:for-each select="book">
  <xsl:result-document href="book{position()}.html" method="html">
   <html>
    <head>
     <title>title</title>
    </head>
    <body><xsl:apply-templates select="@id"/></body>
   </html>
  </xsl:result-document>
 </xsl:for-each>
</xsl:template>

0 个答案:

没有答案