如何使用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
谢谢!
答
如果查询处理器支持的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
你的XML是没有很好地形成它错过了项目的结束标记。请纠正它!如果你提供你已经使用的东西,它也可以让别人更容易地提供解决方案。 – IndoKnight 2013-04-05 12:35:03
我更正了XML,但这不是问题的关键,显然这不是我真正的SOAP响应。 – 2013-04-05 12:37:40
你想要什么格式的日期? – IndoKnight 2013-04-05 12:50:48