XSL-将Xpath查询外部化到属性文件

XSL-将Xpath查询外部化到属性文件,xpath,spring-integration,xslt-2.0,saxon,Xpath,Spring Integration,Xslt 2.0,Saxon,我浏览了各种帖子,关于从外部属性文件读取属性。看起来有一个函数-getProperty,它可以使用键从属性文件中读取值。我正在使用saxon解析器与spring集成。我正在尝试这样的事情,正如帖子中所描述的:- spring上下文文件: <int-xml:xslt-transformer id="xsltTransformer" input-channel="bulkStringInboundChannel" output-channel="toBridgeChannel"

我浏览了各种帖子,关于从外部属性文件读取属性。看起来有一个函数-getProperty,它可以使用键从属性文件中读取值。我正在使用saxon解析器与spring集成。我正在尝试这样的事情,正如帖子中所描述的:-

spring上下文文件:

   <int-xml:xslt-transformer id="xsltTransformer" input-channel="bulkStringInboundChannel"
    output-channel="toBridgeChannel" result-type="StringResult" **transformer-factory-class="net.sf.saxon.TransformerFactoryImpl"**
    xsl-resource="classpath:/META-INF/spring/integration/intake/intake-flow/bulkTransformer.xsl" />
错误说明: XPST0003:{f:getProperty('query1')}: XTSE0650:不存在名为getProperty的模板

我现在有两个问题-首先,我如何摆脱这些错误

第二,我可以在属性文件中存储xPath查询吗?这篇文章描述了一种读取属性文件并使用与其键相关的值的方法。但是,我认为getProperty将只打印查询的文本等价物,而不是计算查询并对其进行处理。有没有办法做到这一点


Post-

我无法帮助您回答问题的Spring方面,但对于Saxon方面,您可以使用如下代码调用JDK方法System.getProperty():

<xsl:value-of select="System:getProperty('user.dir')" xmlns:System="java:java.lang.System"/>

Java可扩展性要求Saxon PE或更高版本

如果读取的属性值是XPath表达式,则可以使用XSLT 3.0 xsl:evaluate指令执行它,这也需要Saxon PE或更高版本

query1 = /Batch/RequestID/text()
<xsl:value-of select="System:getProperty('user.dir')" xmlns:System="java:java.lang.System"/>