Groovy Script
import groovy.xml.XmlSlurper
import groovy.xml.XmlUtil
//XmlSlurper (boolean validating, boolean namespaceAware)
var rootNode = new XmlSlurper(false, true).parseText(responseBodyTextToClient).declareNamespace('soapenv':'http://schemas.xmlsoap.org/soap/envelope/' , 'ns1':'http://url/services/method/' )
//soapEnv:Envelope is the main object
def element=rootNode.'soapenv:Body'.'ns1:anaDeger'.'ns1:altDeger'
if(element == ''){
//Deletes node if field value is empty
rootNode.'soapenv:Body'.'ns1:anaDeger'.'ns1:altDeger'.replaceNode { }
} else if (element.text().size() == 1){
//If value length in field is 1, adds two zeros at the beginning
rootNode.'soapenv:Body'.'ns1:anaDeger'.'ns1:altDeger'.replaceBody('00'+element.text())
}
responseBodyTextToClient = XmlUtil.serialize(rootNode)
Explanation
This script performs the following operations:
- XML Parse: SOAP message coming from response body is parsed
- Element Check: Value of specified element is checked
- Node Deletion: If element is empty, node is deleted
- Value Change: If element value is 1 character, “00” is added at the beginning
- XML Serialize: Updated XML is serialized
This script should be run on the response line (Response Policy) because it uses the responseBodyTextToClient variable.