因此,我试图使用xpath表达式将SOAP响应保存到db
...#[xpath('//Person/Name/Firstname').text], #[xpath('//Person/Name/Lastname').text],
#xpath('//Relations/Relation/RelationId/Id').text], #xpath('//Relations/Relation/Relationtype').text])).....但我想知道如何处理“关系”元素。它是可选的,如果它存在,它可以存在几次,并且元素可以根据关系的类型而有不同的名称。如果它存在的话,我总是想保存它,所以我想知道处理这个问题的最好方法是什么?
问候
编辑
如果元素“关系”存在,它可以有一个或多个“关系”元素和具有不同名称的子元素。我不知道如何处理它,也许最好先使用ChoiceRouter来检查是否存在“关系”。如果是这样的话,我需要一个"foreach“,然后做大量的检查,看看哪些子元素在那里,这样我就可以将它们全部保存到数据库中。
发布于 2014-11-24 09:01:00
您可以在单个MEL表达式中使用三元表达式作为引用。请检查这个:- http://mvel.codehaus.org/MVEL+2.0+Control+Flow
例如,以下检查Relation元素,如果存在,则提取//Relations/Relation/RelationId/Id或放置or条件并返回node.text.您可以根据您的要求修改:-
#[node = xpath('//Relations/Relation') != null ? xpath('//Relations/Relation/RelationId/Id').text : your else condition;node.text;]https://stackoverflow.com/questions/27100696
复制相似问题