Perchishka
9 years agoOccasional Contributor
Groovy loop for parsing - XML Content is not allowed in prolog
Hello!
Could you help me please.
I have a JDBC Request and response looks like:
<Results>
<ResultSet fetchSize="0">
<Row rowNumber="1">
<PS_CONTENT_ONDEMAND.EXTERNAL_CODE>f538de04</PS_CONTENT_ONDEMAND.EXTERNAL_CODE>
<PS_CONTENT_ONDEMAND.SUBSCRIBE_PARAMS_ID>8765</PS_CONTENT_ONDEMAND.SUBSCRIBE_PARAMS_ID>
<PS_CONTENT_ONDEMAND.DATE>2017-03-15 00:00:00.705</PS_CONTENT_ONDEMAND.DATE>
<PS_SUBSCRIBE_PARAMS.URL>http://stk.o4evidec.ru/?alias=mtsby_dance</PS_SUBSCRIBE_PARAMS.URL>
<PS_SUBSCRIBE_PARAMS.ID>8765</PS_SUBSCRIBE_PARAMS.ID>
</Row>
<Row rowNumber="2">
<PS_CONTENT_ONDEMAND.EXTERNAL_CODE>2273851</PS_CONTENT_ONDEMAND.EXTERNAL_CODE>
<PS_CONTENT_ONDEMAND.SUBSCRIBE_PARAMS_ID>8766</PS_CONTENT_ONDEMAND.SUBSCRIBE_PARAMS_ID>
<PS_CONTENT_ONDEMAND.DATE>2017-03-15 06:00:00.944</PS_CONTENT_ONDEMAND.DATE>
<PS_SUBSCRIBE_PARAMS.URL>http://intra.mobile-content.a1s/alias/tele2_dema</PS_SUBSCRIBE_PARAMS.URL>
<PS_SUBSCRIBE_PARAMS.ID>8766</PS_SUBSCRIBE_PARAMS.ID>
</Row>I need to create a loop to set each node :
PS_CONTENT_ONDEMAND.EXTERNAL_CODE
as property in that testCase
At first, I decided to create a script assertion with a simple loop to check how it works :
def parsedXml = new XmlSlurper().parseText("context.ResponseasXML")
parsedXml.Row.each { Row ->
println "Row index: ${Row.@rowNumber}"
Row.children().each{ tag -> println " ${tag.name()}: ${tag.text()}"
}
}But I have an error :
Content is not allowed in prolog
What should i do?
Hi Perchishka,
The error is caused by the quotes around "context.ResponseasXML" - this way it's treated as a literal string instead of an object property. Remove the quotes here.
Also replace println with SoapUI's log.info.
AlsoparsedXml.Row.each { ...should be
parsedXml.ResultSet.Row.each { ...