我正在使用 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)

我的问题是:
  • 我是否得出了必须使用 setBaseOutputURI 的正确结论?
  • 我写错了 URI 吗?
  • 考虑到代码在 Windows 中工作正常,还有什么我应该尝试的吗?
  • 最佳答案

    找到答案了!

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

    关于java - Saxon 和 setBaseOutputURI 导致 "URI has an authority component"错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17675535/

    10-13 08:34