我试着做这样的:
<bean id="xsl1" class="com.transformation.XsltPayloadTransformer">
<property name="xslResource" value="#xpath('/root/someNode/text()', payload)">
</bean>
但它不起作用。
另外,我正在尝试这个:
<si:header-enricher id="environmentHeaderEnricher"
input-channel="inputChannel"
output-channel="prepareChannel">
<!-- <si-xml:header name="environment" xpath-expression-ref="environmentXpathExpression"/> -->
<si:header name="environment" expression="#xpath(payload, '/message/xslt', 'string')"/>
</si:header-enricher>
.....
<bean id="xsl1" class="transformation.XsltPayloadTransformer">
<property name="xslResource" value="#{headers.get('environment')}">
</bean>
我得到:
原因:org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): 在“org.springframework.beans.factory.config.BeanExpressionContext”类型的对象上找不到属性或字段“headers” - 可能不是公共的? 在 org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:215) 在 org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:85)