1

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

4

0 回答 0