Parser XML  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
alex@ander
JavaBaby
[Avatar]

Membro desde: 28/04/2003 23:23:35
Mensagens: 78
Localização: São Paulo
Offline

Senhores,
existe alguma "normalização" de arquivos XML que mescle nós de atributos chave iguais ? Explicando melhor: Tenho algumas tabelas no banco de dados que forman um estrutura em árvore. Ao criar uma query para recuperar todos os registros de todos os itens e sub-itens, recebo um resultSet que tem em sua primeira coluna o item pai repetido várias vezes. Outra coluna pai, repetida algumas vezes dentro do item pai anteiror, e assim por diante ...

folder attribute attribute attribute folder attribute attribute folder attribute
A x x x 1 x x Z x
A x x x 1 x x Z x
A x x x 1 x x Y x
A x x x 2 x x Y x
A x x x 2 x x E x
A x x x 2 x x E x
A x x x 3 x x Z x
A x x x 1 x x Z x
A x x x 1 x x Y x
B x x x 1 x x Y x
B x x x 1 x x E x
B x x x 5 x x E x
B x x x 5 x x Z x
B x x x 5 x x Z x
C x x x 2 x x Y x


Ao enviar isso para um programa Desktop feito em Java, optei por faze-lo via XML. Como cada nó correponde a uma linha, imaginei que pudesse existir algum processo que identificasse os nós "folder" de mesmo nome (atributo name por exemplo) e os mesclasse de modo que o XML adiquirisse ramificações a partir desses nós. Devo fazer isso na "unha" ? Será que existe algo que faça isso para mim ?

A
|_ 1
| |_ Z
| |_ Y
|
|_ 2
|_ 3

B
|_ 1
|_ 5

C
|_ 2
[Email] [WWW]
Hebertbc
JavaChild
[Avatar]

Membro desde: 07/11/2008 20:27:15
Mensagens: 113
Localização: Campo Grande / MS
Offline

Vc quer algo parecido com isso?


C'est la vie monsieur excentrique...
alex@ander
JavaBaby
[Avatar]

Membro desde: 28/04/2003 23:23:35
Mensagens: 78
Localização: São Paulo
Offline

É nesse sentido sim, porém virão em seguida outras sequencias tal como a você mostrou que terão "path's" comuns:


Como faria para que ficasse assim:



[Email] [WWW]
Hebertbc
JavaChild
[Avatar]

Membro desde: 07/11/2008 20:27:15
Mensagens: 113
Localização: Campo Grande / MS
Offline

É so vc criar uma logica pra gerar um objeto nesse formato, depois os xstream faz o resto.

(Edit) Um metodo recursivo resolve seu problema.

This message was edited 1 time. Last update was at 17/03/2010 10:47:15


C'est la vie monsieur excentrique...
alex@ander
JavaBaby
[Avatar]

Membro desde: 28/04/2003 23:23:35
Mensagens: 78
Localização: São Paulo
Offline

Pelo que vi o XTream funciona tal como o XMLDecoder (JavaBeans). Não sei se entendi de forma correta mas o processo de deserialização cria a instância do objeto. Em seguida eu precisari acrescentar sub-itens em uma instância já criada (por exemplo: folder A1 já criado >> criar folder A2 dentro de A) a partir de outro objeto em deserialização ??? Vou estudar a partir daqui. Obrigado.
[Email] [WWW]
alex@ander
JavaBaby
[Avatar]

Membro desde: 28/04/2003 23:23:35
Mensagens: 78
Localização: São Paulo
Offline

É ... não enetendi !


Como eu "jogo" o próximo nó do XML dentro do Folder já criado ?
[Email] [WWW]
alex@ander
JavaBaby
[Avatar]

Membro desde: 28/04/2003 23:23:35
Mensagens: 78
Localização: São Paulo
Offline

Por então pessoal ... deixemos o XML de lado um pouco e usemos a resultSet no lugar. Lendo linha por linha da view, inserimos sobre um "bean" (parecido com o que o nosso amigo Hebertbc nos deu) os dados provenientes dessa linha. Colocamos esse bean em uma List. Em seguida, quando carregamos o segundo bean, verificamos elemento a elemento (aqueles que representam um "folder") se ele já existe em nossa List e em caso afirmativo, obtemos uma referência desse ao invés de uma nova instância. De forma simplificada é isso. Obrigado Hebertbc !
[Email] [WWW]
Hebertbc
JavaChild
[Avatar]

Membro desde: 07/11/2008 20:27:15
Mensagens: 113
Localização: Campo Grande / MS
Offline

Opa... desculpa a demora mais tava meio tenso la no trampo... qualquer coisa so mandar pm... vlw ae

C'est la vie monsieur excentrique...
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team