我正在使用需要加载大量XML样式表的类(Saxon xslt):
import net.sf.saxon.s9api.Processor;
import net.sf.saxon.s9api.Serializer;
import net.sf.saxon.s9api.XdmNode;
import net.sf.saxon.s9api.XsltCompiler;
import net.sf.saxon.s9api.XsltExecutable;
import net.sf.saxon.s9api.XsltTransformer;
XsltCompiler comp = (new Processor(false)).newXsltCompiler();
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("xsl_files/main.xsl");
XsltExecutable exp exp = comp.compile(new StreamSource(is));
xsl_files位于资源文件夹中。 main.xsl已正确加载,但main.xsl引用了Saxon的XsltCompiler所需的xsl_files文件夹中的其他文件,但这些文件并未从java资源加载。如果我将xsl_files复制到硬盘驱动器上的物理文件夹中,那么我只需使用以下内容即可正确加载main.xsl使用的所有文件:
XsltExecutable exp = comp.compile(new StreamSource(new File("path/to/xsl_files/main.xsl")));
有什么方法可以从java资源加载整个文件夹而不是硬盘上的真实路径?
答案 0 :(得分:2)