我正在处理需要使用.xsl文件显示.xml文件的项目的一部分。 这是代码的一部分:
FILE_PATH = "myxsl.xsl"
...
Label content = new Label("content",xmlContent);
content.setEscapeModelStrings(false);
content.add(new XsltTransformerBehavior(FILE_PATH));
add(content);
...
目前,如果我只使用一个.xsl文件,该页面就可以正常工作。但是,因为我需要处理的.xsl文件可能很长,所以它们被分成几个组件。 例如,我会 mymain.xsl,head.xsl,tables.xsl mymain.xsl包含了其他像这样的
<xsl:include href="head.xsl"/>
<xsl:include href="tables.xsl"/>
我尝试将FILE_PATH设置为mymain.xsl,但它不起作用。该程序可以找到mymain.xsl但无法编译样式表,因为它找不到head.xsl和tables.xsl
我一直在寻找很长时间,但仍然不知道如何做到这一点。真的很感激任何帮助。提前谢谢。
答案 0 :(得分:0)
我查看了XsltTransformerBehavior的文档,看起来它没有公开设置自定义URI解析器的功能(这基本上就是你想要做的)。
但是,如果没有其他人有更好的解决方案,我可以提出一个解决方法:编写一个将您的XSLT文件合并到一个文件中的XSLT。有关执行此操作的XSLT,请参阅here。如果您使用Maven作为构建系统,则可以使用transform goal的Maven XML Plugin在generate-resources阶段自动执行此操作。然后,您可以将XsltTransformerBehavior与将在运行时提供的单文件XSLT相关联。