Geração XML
25/11/2015 19:53
0
Boa tarde senhores,

Gostaria de saber se existe alguma forma mais recomendada de gerar XML.
Atualmente meu projeto utiliza MarkupBuilder, mas tenho lido que o StreamingMarkupBuilder é mais rápido. Isso procede?

Atualmente tenho o método seguinte que gera nossos XML's:

private String getResponseXML(acao, valoresRetornados){
?def sw = new StringWriter()
?def xml = new groovy.xml.MarkupBuilder(sw)
?
?xml.response(){
?codigoRetorno(getCodigoRetorno)
?acao(acao)
?switch(acao)
?case listar_usuario:
?if(valoresRetornados.size() > 0 ){
?listaUsuarios{
count(valoresRetornados.size())
valoresRetornados.each { k, o ->
?def valoresUsuario = o
?itemUsuario(Map<String, String> valoresUsuario)
}
?}
}
?break
case lista_recursos
if( valoresRetornados.size() > 0 ){
?listaRecursos() {
count(valoresRetornados.size())
valoresRetornados.each { k, o ->
?def valoresRecurso = o
?if( mode == MODE_SHORT){
?resourceItem( (Map<String, String>)valoresRecurso )
?} else {
?itemRecurso(){
id(valoresRecurso.get("id"))
titulo(valoresRecurso.get(“titulo”))
secao(valoresRecurso.get("tocSectionId"))
def usuarios = valoresRecurso.get(“usuarios”)
if( usuarios.size() > 0 ){
?listaUsuarios() {
?count(usuarios.size())
?usuarios.each { _k, _o ->
def valorUsuario = _o
itemUsuario(){
?id(valorUsuario.get("id"))
?idUsuario(valorUsuario.get(“userId”))
?recursoId(valorUsuario.get("recursoId"))
}
?}
?}
} else {
?listaUsuario(“Nenhum usuario encontrado“)
}
??}
?}
}
??}
}else {
?listaRecurso(“Nenhum recurso encontrado“)
?}
?break

default:
?message("Nenhuma acao executada")
?}
} ?


Também tenho pensado em alguma forma de automatizar esse código e não tem me ocorrido nada, alguma sugestão?

Abs
Tags: Grails


0
Olá Diego,
  Não vi onde seu xml está sendo gerado (vi onde você definiu o objeto, mas não onde ele está sendo preenchido).
  Enfim, já viu o parsing xml ?

Att,
26/11/2015 15:16


0
Grande Dyego,

Muito obrigado por sua resposta.
Basicamente minha dúvida reside no uso do MarkupBuilder ou do StreamingMarkupBuilder, qual é o mais performático...
Valeu ;)
27/11/2015 17:48



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto