我试图通过样式表的参数将多个节点集传递到 WSO2 ESB 中的 XSLT 中介器中的 XSLT。但是,当试图引用 XSLT 处理器中传递的参数时,会说这些值是字符串类型。
XSLT 中介配置本身的结构如下:
<xslt key="conf:/Test/TestMapping.xsl">
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="originalMsg" expression="get-property('OriginalMsg')" />
</xslt>
在 XSLT 本身中,当传递的参数用于尝试引用此数据中的元素时,例如
<xsl:value-of select="$originalMsg/ns1:Node/ns1:OtherNode"/>
错误报告“/”操作在需要节点集时无法应用于字符串。
我试图传递节点集,它是流程中上一步的消息体,我尝试了各种方法来保存它:
通过丰富调解员:
<enrich>
<source clone="true" type="body" xpath="" property="" />
<target action="replace" type="property" xpath="" property="OriginalMsg" />
</enrich>
通过财产调解员:
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="OriginalMsg" expression="$body" scope="default" type="OM" />
但这并没有奏效。
或者,有没有办法在 ESB 函数中使用 document() 来引用消息上下文数据或其他方法?