WSO2ESB、XPath、基于 SOAP 响应中标记的拆分值
WSO2ESB, XPath, split values based on a token in SOAP response
我有一个包含节点值的 SOAP 响应消息
类似于字符串 A_B_C_D
。我需要分开每个
基于下划线 (_) 的值并将它们设置在
单独的属性。
我检查了 Xpath 标记化功能,但找不到
分别获取 array[1], array[2]..
等值的方法。
我也阅读了 XSLT 调解器但不确定是否
它将帮助我实现这一目标。
请指导我如何实现这一目标 objective
谢谢
您可以获得像 "array[1]" 这样的值,但不能使用 ESB 4.8.1 直接在 soap:Body 上应用标记化:
<property xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fn="http://www.w3.org/2005/xpath-functions" name="MY_VALUE" expression="//soapenv:Body/myNode"/>
<property xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fn="http://www.w3.org/2005/xpath-functions" name="Element1" expression="fn:tokenize(syn:get-property('MY_VALUE'),'_')[1]"/>
加上这条消息:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<myNode>A_B_C</myNode>
</soapenv:Body>
</soapenv:Envelope>
属性 'Element1' 包含:'A'
我有一个包含节点值的 SOAP 响应消息
类似于字符串 A_B_C_D
。我需要分开每个
基于下划线 (_) 的值并将它们设置在
单独的属性。
我检查了 Xpath 标记化功能,但找不到
分别获取 array[1], array[2]..
等值的方法。
我也阅读了 XSLT 调解器但不确定是否
它将帮助我实现这一目标。
请指导我如何实现这一目标 objective
谢谢
您可以获得像 "array[1]" 这样的值,但不能使用 ESB 4.8.1 直接在 soap:Body 上应用标记化:
<property xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fn="http://www.w3.org/2005/xpath-functions" name="MY_VALUE" expression="//soapenv:Body/myNode"/>
<property xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fn="http://www.w3.org/2005/xpath-functions" name="Element1" expression="fn:tokenize(syn:get-property('MY_VALUE'),'_')[1]"/>
加上这条消息:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<myNode>A_B_C</myNode>
</soapenv:Body>
</soapenv:Envelope>
属性 'Element1' 包含:'A'