Parser XML de réponse dans SoapUI à l'aide de groovy
Je veux parser un fichier XML de réponse dans SoapUI. J'ai ci-dessous le script, mais de toute façon je ne suis pas capable d'analyser. Pourriez-vous quelqu'un merci de m'aider à affiner le code.
def response = context.expand( '${WS_01_Hotel_Search#Response#declare namespace soap=\'http://www.w3.org/2003/05/soap-envelope\'; //OTA_HotelAvailRS[1]/RoomStays[1]}' )
def responseParser = new XmlParser().parseText(response)
responseParser.RoomStays.RoomStay.RoomTypes.RoomType.each { RoomType ->
log.info("${RoomType.'@RoomTypeCode'} ${RoomType.'@RoomID'}");
}
Code XML:
<RoomStays>
<RoomStay>
<RoomTypes>
<RoomType RoomTypeCode="AAA" RoomID="BB" Quantity="9">
<RoomDescription>
<Text>Double Room</Text>
</RoomDescription>
</RoomType>
<RoomType RoomTypeCode="BBB" RoomID="CC" Quantity="9">
<RoomDescription>
<Text>Double Room</Text>
</RoomDescription>
</RoomType>
<RoomType RoomTypeCode="CCC" RoomID="DD" Quantity="9">
<RoomDescription>
<Text>Executive Family Room</Text>
</RoomDescription>
</RoomType>
<RoomType RoomTypeCode="DDD" RoomID="EE" Quantity="9">
<RoomDescription>
<Text>Executive Family Room</Text>
</RoomDescription>
</RoomType>
</RoomTypes>
</RoomStay>
</RoomStays>
Vous devez vous connecter pour publier un commentaire.
dmahapatro's réponse est correcte basé sur le xml vous aviez d'origine fournis. L'analyse xml est fixé à nœud racine. Il aurait vraiment aidé si vous avait fourni le xml d'origine plus tôt et ce que vous receviez une réponse.
Vous demande pourquoi vous
La
parser.parseText (response)
code renvoie un nœud et le définition d'un nœud unis.Si vous regardez de près ce que vous avez est un nœud avec un nom, une valeur et une option de mappage d'attributs, un cas au point..
qui représente le ci-dessous une partie de l'xml.
Basé sur votre xml d'origine essayer le code ci-dessous pour accéder à chaque type de chambre
Cela me donne
Devrait être
Remarque:
RoomStays
est la racine et n'est pas utilisé, comme le xml analysé est fixé à ce nœud.