如何断言 xml 个节点
how to assert for xml nodes
我有一个关于断言 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:
中断言不同的功能
- 检查 xml 是否包含警告 xml 标签
- 检查是否有任何警告标签包含等于 warnPriceChanged
的代码
这些只是单独的检查,所以我可以看看它们是如何工作的。下面是一个示例代码,我想在其中检查是否存在警告标记,但我得到的是空响应:
def WarningCodes = xml.'soap:Body'.xxx[0].xxx[0].Warnings[0].Warning*.@Code
因此,让它们按顺序排列:
1) 检查 xml 是否包含警告 xml 标签
如果您使用的是 XmlSlurper:
xml.'**'.any { it.name() == 'Warning' }
如果您使用的是 XmlParser:
xml.'**'.any { it.name().localPart == 'Warning' }
2) 检查是否有任何警告标签包含等于 warnPriceChanged
的代码
如果您使用的是 XmlSlurper:
xml.'**'.findAll { it.name() == 'Warning' }.any { it.@Code == 'warnPriceChanged' }
如果您使用的是 XmlParser:
xml.'**'.findAll { it.name().localPart == 'Warning' }.any { it.@Code == 'warnPriceChanged' }
我有一个关于断言 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:
中断言不同的功能- 检查 xml 是否包含警告 xml 标签
- 检查是否有任何警告标签包含等于 warnPriceChanged 的代码
这些只是单独的检查,所以我可以看看它们是如何工作的。下面是一个示例代码,我想在其中检查是否存在警告标记,但我得到的是空响应:
def WarningCodes = xml.'soap:Body'.xxx[0].xxx[0].Warnings[0].Warning*.@Code
因此,让它们按顺序排列:
1) 检查 xml 是否包含警告 xml 标签
如果您使用的是 XmlSlurper:
xml.'**'.any { it.name() == 'Warning' }
如果您使用的是 XmlParser:
xml.'**'.any { it.name().localPart == 'Warning' }
2) 检查是否有任何警告标签包含等于 warnPriceChanged
的代码如果您使用的是 XmlSlurper:
xml.'**'.findAll { it.name() == 'Warning' }.any { it.@Code == 'warnPriceChanged' }
如果您使用的是 XmlParser:
xml.'**'.findAll { it.name().localPart == 'Warning' }.any { it.@Code == 'warnPriceChanged' }