我想要一个满足2个要求的xsl:include / import
e.g。
<xsl:import href="<xsl:value-of select='/root/@additionalFormattingXSL' />.xsl"/>
有没有办法获得上述部分或全部要求? (在任何现有的XSLT版本中都不允许Java)?
答案 0 :(得分:2)
如果你说出你想要达到的目标,那么帮助你会更容易:然后我们可以判断你希望实现它的方式是否完全是一种全能的。
请记住,xsl:import是一种从各种模块构建程序的机制,并且在大多数编程语言中,XSLT程序在开始执行之前构造和编译。所以你肯定无法通过将xsl:import视为某种可执行指令来动态地修改自己的样式表。但是,您可以编写一个样式表,其效果是创建或修改另一个 XSLT样式表,而这通常是有意义的。
答案 1 :(得分:1)
一种方法是使用额外的XSL样式表自己执行输入。此导入处理样式表将原始样式表作为输入,并输出包含原始样式表和所有成功导入的样式表的扩展样式表。
这样,您就可以完全控制需求1和2.关于需求1,您可以在导入处理样式表中使用doc-available()。
仅供参考,通常将动态值合并到属性值的方法是使用Attribute Value Template,例如
href="{/root/@additionalFormattingXSL}.xsl"
但是,这仅适用于指定为AVT的属性,例如文字结果元素的属性。我非常确定href
的{{1}}属性不。