2017-03-21 7 views
0

Ich habe eine Frage in Bezug auf die Geltendmachung eines XML-Knotens und möchte verschiedene Szenarien betrachten eine Assertion durchgeführt werden kann.wie für XML-Knoten zu bestätigen

Below Ich habe eine xml, die eine Warnung xml-Tag enthält:

<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> 

Ich möchte ein paar verschiedene Arten von Behauptungen führen, zu verstehen, wie die verschiedenen Funktionen innerhalb eines XML zu behaupten:

  • überprüfen Sie, ob die xml eine Warnung xML-Tag
  • prüfen enthält, dass, wenn eine Warnung Tag enthält einen Code, der warnPriceChanged
gleich

Das sind nur separate Überprüfungen, damit ich sehen kann, wie sie funktionieren. Unten ist ein Beispielcode, wo ich vor, wenn ein Warnhinweis überprüfen möchten, aber ich bin eine Null-Antwort zu erhalten:

def WarningCodes = xml.'soap:Body'.xxx[0].xxx[0].Warnings[0].Warning*[email protected] 

Antwort

1

Also, sie zu nehmen, um:

1) Überprüfen Sie, ob die xml enthält eine Warnung xML-Tag

Wenn Sie XmlSlurper mit sind:

xml.'**'.any { it.name() == 'Warning' } 

Wenn Sie XmlParser verwenden:

xml.'**'.any { it.name().localPart == 'Warning' } 

2) Überprüfen Sie, dass, wenn eine Warnung Tag enthält einen Code, der warnPriceChanged

gleich Wenn Sie mit XmlSlurper:

xml.'**'.findAll { it.name() == 'Warning' }.any { [email protected] == 'warnPriceChanged' } 

Wenn Sie XmlParser verwenden:

xml.'**'.findAll { it.name().localPart == 'Warning' }.any { [email protected] == 'warnPriceChanged' } 
+0

Gut zu wissen die Varianten zwischen 'XmlSlurper' und' XmlParser'. Aber auch 'any'. Looks 'collect' kann dort auch für' any' verwendet werden? oder irgendein Unterschied? – Rao

Verwandte Themen