2013-09-16 4 views
0

Я строю родительский XML, прочитав его из запроса XML Вот код:Groovy: Создание нового узла

def createXML(requestXML) 
{ 
    def formXML = new XmlSlurper().parseText(requestXML) 
    def formMap = [:] 
    formXML.children.each { 
    formMap[it.name()] = it 
    } 
    buildComponentXML(formMap) 

} 

def buildComponentXML(formMap) 
{ 
    def compXML = formMap['componentName'] 
    def anotherNode = new Node (compXML, 'AnotherNode',1234555) 
    println XmlUtil.serialize(compXML) 
} 

Исключение

Could not find matching constructor for: groovy.util.Node(groovy.util.slurpersupport.NodeChild, java.lang.String, java.lang.String) 
+0

Что вы пытаетесь сделать? У вас есть пример для 'requestXML'? Не уверен, что привязка узлов к карте приведет вас к чему-либо, просто используя результат из 'parseText' ... Какой результат вы ожидаете? –

+0

Я добавляю тонкий клиент к устаревшему приложению. Это означает перевод плоского запроса xml тонкого клиента в многоуровневый запрос xml устаревшего приложения. XML-запрос XML, имеющий некоторые бизнес-данные. Попробует опубликовать что-то с аналогичной структурой. –

+0

Ребята из C'mmon. Почему он был заблокирован? Просто google 'добавьте новый узел с помощью Groovy' и пройдите первые 5 страниц. Вы будете знать мои исследовательские усилия. –

ответ

1

Это трудно сказать, но что я думаю вы хотите:

def buildComponentXML(formMap) { 
    def compXML = formMap['componentName'] 
    compXML.appendNode { AnotherNode(1234555) } 
    println XmlUtil.serialize(compXML) 
} 

Но тогда, это то же самое, как:

def createXML(requestXML) { 
    def formXML = new XmlSlurper().parseText(requestXML) 
    buildComponentXML(formXML) 
} 

def buildComponentXML(formXML) { 
    formXML.'componentName'.appendNode { AnotherNode(1234555) } 
    println XmlUtil.serialize(formXML) 
} 

Как наклеивания вещи в карте любопытное дублирования усилий XmlSlurper (предполагая, что у меня есть правильный конец палки WRT, что вы пытаетесь сделать)

+0

О, спасибо большое за гениальный ответ. Его третий день с Groovy. –

+0

Не беспокойтесь, никогда не бывает глупого вопроса! Пальцы пересекли эту работу (и это не глупый ответ) ;-) –

+0

Это действительно сработало. Еще раз спасибо. –

Смежные вопросы