// modify supplies: we need extra pens def supplies = root.category.findAll{ it.@type == ‘supplies’ }.item[0]
supplies.findAll{ it.text() == ‘Pens’ }.each { s ->
s.@quantity = s.@quantity.toInteger() + 2
s.@when = ‘Urgent’
}
// modify presents: August has come and gone def presentCategory = root.category.find{ it.@type == ‘present’ }
presentCategory.children().clear()
presentCategory.appendNode(‘item’, “Mum’s Birthday”)
presentCategory.appendNode(‘item’, [when:‘Oct 15’], “Monica’s Birthday”)
// check the when attributes def removeNulls(list) { list.grep{it} } assert removeNulls(root.‘**’.item.@when) == [“Urgent”, “Oct 15”]
// check the whole document using XmlUnit def writer = new StringWriter() new XmlNodePrinter(new PrintWriter(writer)).print(root) def result = writer.toString()
XMLUnit.setIgnoreWhitespace(true) def xmlDiff = new Diff(result, expectedResult) assert xmlDiff.identical()
или вам нужен точечный пример решения вашей задачи?
такое лучше написать на JAVA, использовать String tokanizer просто имитировать ваши теги как строку и модифицировать ее по алгоритму, какой Вам там нужен, но не осбо понимаю какой ето тип сервиса такие манипуляции требует ??
Можете поподробнее расказать что такое теги для реквеста...
Ой ну не надо только человека вводить в заблуждение. Вот что есть груви согласно http://groovy.codehaus.org/:
is an agile and dynamic language for the Java Virtual Machine
builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk.
Все правильно товарищ polusok написал. Строите свой SOAP реквест (полсностью или частично) и печатаете его в string. В SOAPUI в редакторе реквеста пишете ссылку на результат работы скрипта. Вынесите еще это все в groovy библиотеку.
Можно конечно все через String написать но это имхо как то не совсем правильно, хотя для Вашего случая наверное будет быстрее. С другой стороны, если Вам понадобится в дальнейшем улучшить (усложнить) постоитель SOAP запросов, то используя XML библиотеки это сделать будет проще, чем просто String. Самые простые библиотеки для работы с XML в groovy (уже встроены) это XmlParser и XmlSlupper. Обе поддерживают не только запросы но и изменение/добавление тегов/значений и т.д.
Так а как это нужное количество субнодов <fieldName> в SoapUI request-е добавить?
Либо создавать кусок XML как String либо как XML а потом печатать в String. Можно еще конечно на лету перед отправкой реквеста его править, но это имхо перебор.