Forum Discussion

Oct21's avatar
Oct21
Occasional Contributor
6 years ago

Getting error "content is not allowed in prolog" while parsing XML through groovy scripts

Hi 

Am using groovy script to parse the XML. Am able get all the data nodes but not able to fetch the particular which i want.

Code 

assert context.response

def getData = { data, element ->
new XmlSlurper().parseText(data).'**'.find {it.name() == element}
}

def inXmlStr = getData(context.response, 'Acknowledge').text()
log.info inXmlStr
def receiptId = getData(inXmlStr, 'ReceiptId')
log.info receiptId
context.testCase.setPropertyValue('ID', receiptId.IdValue.toString())

 

Response XML :

 <?xml version="1.0" encoding="utf-8"?>
<AcknowledgeCandidateRegistration majorVersionId="1" minorVersionId="0" xmlns="http://cebtalentcentral.com">
<ApplicationArea>
<CreationDateTime>2019-02-12T15:11:05.027Z</CreationDateTime>
</ApplicationArea>
<Acknowledge>
<OriginalApplicationArea>
<CreationDateTime>2019-02-12T15:11:03.470Z</CreationDateTime>
</OriginalApplicationArea>
<ReceiptId>155785</ReceiptId> // need this particular id
<Status>Completed</Status>
<RejectCode>0</RejectCode>
<RejectReason />
</Acknowledge>
</AcknowledgeCandidateRegistration>

 

Regards,

Oct21

  • Oct21 ,

     

    Here is the new script assertion for the attached xml

     

     

    assert context.response
    
    def getData = { data, element ->
    	new XmlSlurper().parseText(data).'**'.find {it.name() == element}
    }
    
    
    def receiptId = getData(context.response, 'ReceiptId')
    log.info receiptId
    context.testCase.setPropertyValue('ID', receiptId.toString())
  • nmrao's avatar
    nmrao
    Champion Level 3
    Oct21,

    The above script was provided to you as Script assertion for the Request test step, and that is not (does not work) if you use it in Groovy Script test step.

    Can you confirm if you are using the above code in Script Assertion?
    • Oct21's avatar
      Oct21
      Occasional Contributor

      The script provided earlier was also used as a groovy test step, and the script am using now is also as a groovy test step.

      You can check the screenshot i sent.

      • nmrao's avatar
        nmrao
        Champion Level 3
        If you read the post again, it clearly says Scipt Assertion (for the same step where you get the response). No additional step. Please correct it and try again.