4

我正在使用 saxon 从 1 个 xml 文件创建 5 个 html 文件。每当我运行代码窗口时,它都会顺利运行并创建所有必要的文件。但是,当我在 unix 中运行代码时,它导致了这个错误:

Failed to create output file file:/output1.html:   Permission denied

在stackoverflow中搜索,我了解到它正在尝试写入根目录,这让我尝试了setBaseOutputURI()。

我正在尝试让 saxon 将 html 文件输出到 /foo/biz/html_out,所以我编写了以下代码:

String filePathUri = "file://foo/biz/html_out/";
xsltTransformer.setBaseOutputURI(filePathUri);

错误现在读取

net.sf.saxon.s9api.SaxonApiException: Cannot write to URI file://foo/output1.html (URI has an authority component)
    at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:454)

我的问题是:

  1. 我是否得出了必须使用 setBaseOutputURI 的正确结论?

  2. 我写错了URI吗?

  3. 考虑到代码在 Windows 中运行良好,还有什么我应该尝试的吗?

4

1 回答 1

10

找到了答案!

我不得不使用“file:///foo/biz/html_out”作为 URI。额外的斜线使字符串的其余部分成为路径的文本。

于 2013-07-17T05:36:36.307 回答