如何使用XQuery在SoapUI中迭代SOAP响应?

如何使用XQuery在SoapUI中迭代SOAP响应?

问题描述:

我有类似这样的一个SOAP响应:如何使用XQuery在SoapUI中迭代SOAP响应?

<items> 
<item date="2009-10-02"> </item> 
<item date="2010-10-02"></item> 
<item date="2012-10-02"></item> 
</items> 

我需要使用XQuery和正则表达式我已经有了,如果在每个项目的日期有正确的格式进行检查。我尝试了迭代,但它一直警告我:“在当前响应中有多个匹配”。 这是我已经试过的:

let $items:= (//items) 
for $i in $items 
    return 1 

谢谢!

+0

你的XML是没有很好地形成它错过了项目的结束标记。请纠正它!如果你提供你已经使用的东西,它也可以让别人更容易地提供解决方案。 – IndoKnight 2013-04-05 12:35:03

+0

我更正了XML,但这不是问题的关键,显然这不是我真正的SOAP响应。 – 2013-04-05 12:37:40

+0

你想要什么格式的日期? – IndoKnight 2013-04-05 12:50:48

如果查询处理器支持的XQuery 3.0和你感兴趣的一个综合作用的结果所有日期,使用“每-满足”语法。

every $date in //item/@date satisfies matches($date, '[-\d]+') 

如果处理器不支持这种语法,你可以使用这样的事情:

not(//item/@date/matches(., '[-\d]+') != true()) 

如果它只支持的XQuery 1.0,您可能需要包装matches各地的XPath序列:

not(matches(//item/@date, '[-\d]+') != true()) 

如果你有兴趣个人VA梅毒,使用此:

//item/@date/matches(., '[-\d]+') 

或者再次的XQuery 1.0:

for $date in //item/@date 
return matches($date, '[-\d]+') 

我终于对我自己的一些工作发现:

for $z in //item[1] 
return matches($z/@date, 'regularexp') 
+1

你说你需要检查每个项目中的_dates是否有正确的format_,但是你只在这个查询中检查第一个日期。 – 2013-04-05 16:03:36