我試圖通過參數樣式表中多個節點集通到在WSO2 ESB的XSLT調解員的XSLT。然而,當試圖引用在XSLT處理器中傳遞的參數時,這些值是字符串類型。如何傳遞在多個數據源到XSLT調解員在WSO2 ESB
的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"/>
錯誤報告「/」操作在期望節點集時不能應用於字符串。
我曾嘗試通過在其上是由在流之前的步驟,這是我曾嘗試過各種medthods保存mesage體節點集:
通過富民介體:
<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功能來指代消息上下文數據或一些其它方法的方法嗎?
WS02支持哪種版本的XSLT?我懷疑它是版本1.在版本1中,您不能將XPath表達式應用於變量。您可以使用EXSLT的節點集等擴展,將字符串變量轉換爲節點集。如果你能看到你是否可以說服WS02使用像Saxon這樣的XSLT 2引擎,那麼它可能會更有成效,因爲XSLT版本2消除了版本1強加的許多惱人的限制 – Kevan 2012-04-02 17:42:32