"nodeName" alanına ilgili XML'de filtrelemek istediğimiz parent node'un adını girerek ilgili node ve tüm child node'larını dinamik bir şekilde json'a çevirebilirsiniz. İlgili script, request hattında çalışacak şekilde kurgulanmıştır.

Xml/Soap bir web servisi Json/Rest olarak sunmak için Apinizer üzerindeki Rest-2-Soap özelliği kullanılabilir.

Detaylı bilgi için SOAP Web Servisi REST API Olarak Sunma adresini inceleyebilirsiniz.


import groovy.util.XmlSlurper
import groovy.json.JsonOutput

try {
    def slurper = new XmlSlurper(false, false)
    def data = slurper.parseText(requestBodyTextFromClient)

    def parsedData = data.'**'.findAll { it.name().contains('nodeName') }

    def result = [:]

    parsedData.each { node ->
        node.'**'.each { subNode ->
            if (!subNode.children() || subNode.children().size() == 0) {
                result[subNode.name()] = subNode.text()
            }
        }
    }

    requestBodyTextFromClient = JsonOutput.prettyPrint(JsonOutput.toJson(result))
} catch (Exception ex) {
    requestErrorMessageToTargetAPI = ex.message
}

GROOVY