2016-01-19 4 views
0

Я использую класс (Saxon XSLT), которая требует несколько таблиц стилей XML загружена:ява загрузка ресурсов несколько файлов

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 ссылается на другие файлы, находящиеся в папке xsl_files, необходимые Saxon XsltCompiler, но не загруженные из ресурсов Java. Если я копирую xsl_files в физическую папку на жестком диске, то я могу просто использовать следующий и все файлы main.xsl использует загружен правильно:

XsltExecutable exp = comp.compile(new StreamSource(new File("path/to/xsl_files/main.xsl"))); 

Любой способ обойти это, чтобы загрузить всю папку с Явы ресурсов вместо реального пути на жестком диске?

ответ

0

Использование http://saxonica.com/html/documentation/javadoc/net/sf/saxon/s9api/XsltCompiler.html#setURIResolver%28javax.xml.transform.URIResolver%29 для обеспечения URIResover, который знает, чтобы загрузить из папки ресурсов, есть некоторые ответы, показывающие, как осуществить это, как Resolving relative paths when loading XSLT files и https://stackoverflow.com/a/12453881/252228.

Смежные вопросы