我有一个关于断言xml节点的问题,并且想要查看可以执行断言的不同场景。
下面我有一个包含警告xml标记的xml:
<soap:Envelope xmlns:soap="xxx" xmlns:xsi="xxx" xmlns:xsd="xxx">
<soap:Body>
<xxxxmlns="xxx">
<xxxUrl="xxx" TimeStamp="2017-03-16T12:36:01.8215426+00:00" IntCode="xxx">
<Warnings>
<Warning Code="xxx" Text="Price changed. Use the new RatePlanCode or BookingCode"/>
</Warnings>
我想执行几种不同类型的断言来理解如何在xml中声明不同的功能:
这些只是单独的检查,所以我可以看到它们是如何工作的。下面是一个示例代码,我想检查是否存在警告标记,但我得到一个空响应:
def WarningCodes = xml.'soap:Body'.xxx[0].xxx[0].Warnings[0].Warning*.@Code
答案 0 :(得分:1)
所以,按顺序接受它们:
1)检查xml是否包含警告xml标记
如果你正在使用XmlSlurper:
xml.'**'.any { it.name().localPart == 'Warning' }
如果你正在使用XmlParser:
xml.'**'.findAll { it.name() == 'Warning' }.any { it.@Code == 'warnPriceChanged' }
2)检查是否有任何警告标签包含的代码等于warnPriceChanged
如果你正在使用XmlSlurper:
xml.'**'.findAll { it.name().localPart == 'Warning' }.any { it.@Code == 'warnPriceChanged' }
如果你正在使用XmlParser:
<asp:CustomValidator
ID="CustomValidator" runat="server"
OnServerValidate="CustomValidator_ServerValidate"
Forecolor="Red" Display="dynamic"
style="margin-top:10px; margin-bottom:10px"
ValidationGroup="test">