XML Body İçindeki Alt Elemana Eksik Element Ekleme
Groovy Script
import groovy.xml.XmlSlurper
import groovy.xml.XmlUtil
// XML'i parse edilir
def parsedXml = new XmlSlurper().parseText(requestBodyTextFromClient)
// Body içindeki ilk element bulunur
def methodNode = parsedXml.'**'.find { it.parent().name() == 'Body' }
// <ELEMENT_NAME> element'inin body içindeki children elementte var olup olmadığını kontrol edilir
def <ELEMENT_NAME>Node = methodNode.children().find { it.name() == '<ELEMENT_NAME>' }
// Eğer <ELEMENT_NAME> elementi yoksa body içindeki alt eleman içine eklenir
if (!<ELEMENT_NAME>) {
methodNode.appendNode {
<ELEMENT_NAME>(' ')
}
}
// XML'i serialize edilir.
requestBodyTextToTargetAPI = XmlUtil.serialize(parsedXml)
Açıklama
Bu script şu işlemleri gerçekleştirir:
- XML Parse: Request body'den gelen XML verisi parse edilir
- Body Element Bulma: Body içindeki ilk element bulunur
- Element Kontrolü: Belirtilen element'in var olup olmadığı kontrol edilir
- Element Ekleme: Eğer element yoksa, body içindeki alt eleman içine eklenir
- XML Serialize: Güncellenmiş XML serialize edilir
not
Bu script, request hattında (Request Policy) çalıştırılmalıdır çünkü requestBodyTextFromClient ve requestBodyTextToTargetAPI değişkenlerini kullanmaktadır. <ELEMENT_NAME> yerine gerçek element adını yazmanız gerekmektedir.