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

Testing 如何使用XQuery在SoapUI中迭代SOAP响应?,testing,soap,xquery,Testing,Soap,Xquery,我有一个与此类似的SOAP响应: <items> <item date="2009-10-02"> </item> <item date="2010-10-02"></item> <item date="2012-10-02"></item> </items> 谢谢 我终于自己找到了一个有效的方法: for $z in //item[1] return matches($z/@date, 'r

我有一个与此类似的SOAP响应:

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

谢谢

我终于自己找到了一个有效的方法:

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

如果您的查询处理器支持XQuery 3.0,并且您对所有日期的一个组合结果感兴趣,请使用“every”语法

如果处理器不支持该语法,您可以使用如下内容:

not(//item/@date/matches(., '[-\d]+') != true())
如果它只支持XQuery 1.0,则可能需要围绕XPath序列包装
匹配项

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

如果您对个人价值感兴趣,请使用以下方法:

//item/@date/matches(., '[-\d]+')
或者,对于XQuery 1.0:

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

您的xml格式不正确,因此缺少项结束标记。请改正它!如果您提供了您已经使用的内容,那么其他人也可以更容易地给出解决方案。我更正了XML,但这不是问题的重点,显然这不是我真正的SOAP响应。您希望以什么格式获取日期?这不重要,我只想获取日期值。$I/item[@attrib='date']您说您需要检查每个项目中的日期是否具有正确的格式,但您只检查此查询中的第一个日期。
//item/@date/matches(., '[-\d]+')
for $date in //item/@date
return matches($date, '[-\d]+')