我在使用 Camel xslt 转换时遇到问题。我想要包含 xsl 文件的服务器 http。这些文件是使用在我的程序中创建的直接路径包含的,例如: xml:include href="http://serverName.com/files/file.xsl"/ 但是在服务器上,文件应该包含另一个文件,但使用相对路径。所以它看起来像 xml:include href="../directory/file.xsl"/
我编写了自己的 URIResolver,其中 ovverides 方法 resolve @Override public Source resolve(String href, String base) throws TransformerException { base = testBase; if (href == null || href.equals("")) throw new TransformerException();
if (base == null || base.equals(""))
return resolve(href);
String uri = createUri(href, base);
return resolve(uri);
}
但基本参数始终为空。我读到这个参数以某种方式连接到 systemID 但我不知道如何处理它。我只创建第一个主 xsl 文件,然后其他所有内容都由 Camel Transformer 处理。更重要的是,这个转换器在我的应用程序中是单调的,所以我每次开始转换时都无法加载不同的 URIResolver。因此,唯一的选择似乎是将有关服务器地址的信息存储在 xsl 文件中(最好是具有到服务器的直接路径的主文件)。我试图这样做,但我得到的只是 URIResolver 在 href 参数中获得类似 @baseDir/directory/file.xml 的内容,并且 base 仍然为空。
那么有人知道如何做到这一点吗?最好使用 Camel,但如果它证明自己是不可能的,也许你对另一个框架有建议?
提前感谢所有回复 Lukasz