[英]Handling optional elements in mule with xpath
所以我正在尝试使用xpath表达式将SOAP响应保存到数据库中
...#[xpath('//Person/Name/Firstname').text], #[xpath('//Person/Name/Lastname').text],
#xpath('//Relations/Relation/RelationId/Id').text], #xpath('//Relations/Relation/Relationtype').text])).....
但是我想知道如何处理“关系”元素。 它是可选的,如果存在,它可以存在多次,并且元素可以具有不同的名称,这取决于Relation的类型。 如果存在,我总是想保存所有内容,所以我想知道最好的方法是什么?
问候
编辑
如果存在元素“ Relations”,则它可以具有一个或多个“ Relation”元素以及具有不同名称的子元素。 我不确定如何处理它,也许最好先使用ChoiceRouter来检查“ Relations”是否存在。 如果是这样,我将需要有一个“ foreach”,然后进行大量检查以查看其中存在哪些子元素,以便将它们全部保存到数据库中。
您可以在一个MEL 表达式中对if / else使用三元表达式作为参考。.请检查:-http: //mvel.codehaus.org/MVEL+2.0+Control+Flow
例如,下面的代码检查Relation元素,如果存在,则提取//Relations/Relation/RelationId/Id
或放入else条件并返回node.text ...您可以根据需要进行修改:-
#[node = xpath('//Relations/Relation') != null ? xpath('//Relations/Relation/RelationId/Id').text : your else condition;node.text;]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.