Самый простой способ получить список методов любого объекта - использовать команду help()
.
%help(object)
В нем будут перечислены все доступные / важные методы, связанные с этим объектом.
Например:
help(str)
Вы можете построить XmlSlurper
без осознания пространства имен в пространстве имен так:
import groovy.xml.XmlUtil
def pom = new XmlSlurper( false, false ).parse( 'pom.xml' )
println XmlUtil.serialize(pom)
Который должен дать вам ответ, который вы хотите ... В настоящее время нет идеи о том, как для сохранения комментариев во время цикла slurp / serialize: - (
Как вы говорите, это может быть возможно с XmlParser, но мои текущие попытки потерпели неудачу :-( Здесь некоторый код который может приблизить вас, но пока я не имел успеха: - (
У меня была та же проблема с добавлением тега «to0» к элементам, которые не определяли пространство имен (т. е. они находились в пространстве имен «без пространства имен»). Я исправил это, добавив
declareNamespace('': '')
, который сбрасывает элементы из пространства имен по умолчанию в пространство имен «без пространства имен».
Я обнаружил, что лучше использовать XmlParser, а не XmlSlurper, если вы имеете дело с пространствами имен и имеете проблему tag0. Синтаксически они кажутся одинаковыми, например:
def root = new XmlParser().parse(new File('example.xml'))
println XmlUtil.serialize(root)
. Вышеприведенный код выводит example.xml точно так же, как он должен включать пространства имён.
Если вы хотите обработать корень в каким-то образом, например, найти конкретный узел, использовать API Groovy и вывести результат, например
def root = new XmlParser().parse(new File('example.xml')
def result = root."ns:Element"[0]
println XmlUtil.serialize(result)