Groovy: XmlSlurper Добавить пользовательский атрибут в узел XML [duplicate]

Самый простой способ получить список методов любого объекта - использовать команду help().

%help(object)

В нем будут перечислены все доступные / важные методы, связанные с этим объектом.

Например:

help(str)
11
задан mzjn 8 February 2012 в 21:35
поделиться

3 ответа

Вы можете построить XmlSlurper без осознания пространства имен в пространстве имен так:

import groovy.xml.XmlUtil

def pom = new XmlSlurper( false, false ).parse( 'pom.xml' )
println XmlUtil.serialize(pom)

Который должен дать вам ответ, который вы хотите ... В настоящее время нет идеи о том, как для сохранения комментариев во время цикла slurp / serialize: - (

Как вы говорите, это может быть возможно с XmlParser, но мои текущие попытки потерпели неудачу :-( Здесь некоторый код который может приблизить вас, но пока я не имел успеха: - (

17
ответ дан tim_yates 25 August 2018 в 04:56
поделиться

У меня была та же проблема с добавлением тега «to0» к элементам, которые не определяли пространство имен (т. е. они находились в пространстве имен «без пространства имен»). Я исправил это, добавив

declareNamespace('': '')

, который сбрасывает элементы из пространства имен по умолчанию в пространство имен «без пространства имен».

3
ответ дан Darren Griffith 25 August 2018 в 04:56
поделиться

Я обнаружил, что лучше использовать 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)
1
ответ дан Perception 25 August 2018 в 04:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: