Ler XML Desconhecido  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
crpablo
Java Ninja
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 296
Localização: Floripa/Brazil
Offline

Fala ae galera...

To com uma dúvida...

Tem como ler um XML sem conhecer a estrutura dele?

Ou melhor... tem como identificar a estrutura de um XML com java?

A idéia é ler um XML gigante e transformar em objetos e persistir isso...

Abraço



Pablo

[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
rsakurai
JavaTeenager
[Avatar]

Membro desde: 09/05/2008 09:42:15
Mensagens: 170
Offline

Mas como você pretende converter o XML em Objeto se vc não conhece a estrutura?

www.universidadejava.com.br
[WWW]
crpablo
Java Ninja
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 296
Localização: Floripa/Brazil
Offline

É isso que eu quero saber =D



Pablo

[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
rsakurai
JavaTeenager
[Avatar]

Membro desde: 09/05/2008 09:42:15
Mensagens: 170
Offline

Mas isso é fácil:

Le o arquivo XML para conhecer a estrutura e cria uma classe e coloca atributos e métodos dinamicamente via reflection.
Depois lê novamente o XML para criar uma lista com os objetos carregados dinamicamente.

To brincando, eu pelo menos nunca precisei fazer isso, sempre tive acesso a estrutura do XML.

www.universidadejava.com.br
[WWW]
crpablo
Java Ninja
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 296
Localização: Floripa/Brazil
Offline

Até tenho acesso a estrutura...

Mas o problema é que ela tem 53 páginas.... só o ddt... =S



Pablo

[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Você só tem o DTD ou tem o XSD? Se tiver o XSD você pode converter o XSD para uma classe Java usando JAXB ( usando o utilitário xjc que vem junto com o JDK 6.0).
[WWW]
crpablo
Java Ninja
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 296
Localização: Floripa/Brazil
Offline

Infelizmente só o DTD...



Pablo

[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Talvez o Altova ou o Eclipse tenham algum recurso que possibilite criar uma classe Java a partir de um DTD.

O Websphere (WSAD) tem algo parecido com o que você precisaria:

http://publib.boulder.ibm.com/infocenter/wsadhelp/v5r1m2/index.jsp?topic=/com.ibm.etools.dtdeditor.doc/topics/tgenbens.html


[WWW]
crpablo
Java Ninja
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 296
Localização: Floripa/Brazil
Offline

thingol wrote:Talvez o Altova ou o Eclipse tenham algum recurso que possibilite criar uma classe Java a partir de um DTD.

O Websphere (WSAD) tem algo parecido com o que você precisaria:

http://publib.boulder.ibm.com/infocenter/wsadhelp/v5r1m2/index.jsp?topic=/com.ibm.etools.dtdeditor.doc/topics/tgenbens.html




Blz cara...

Valeu...

Vou dar uma olhada...
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
elenice_sp
Smalltalk
[Avatar]
Membro desde: 09/06/2009 08:43:49
Mensagens: 2
Offline

**Crie um objeto "Document" com esse xml... (Objeto Dom... bla bla bla...)

**Armazene seus elementos desse "doc" em um objeto "Element"

Element elem = doc.getDocumentElement();

** Identifique o nó pai

String noPai = elem.getTagName();

** Crie uma lista de "nodes"

NodeList nlnv = elem.getElementsByTagName( noPai );

** Brinque com essa lista, que refletirá cada nó filho, neto etc





for(int i=0; i<nlnv.getLength(); i++) {
XXX = (XXX)nlnv.item(0);
}

Acho que é por aí....


E. R. F.
Systems Analyst
renzonuccitelli
GUJ Master

Membro desde: 17/09/2008 12:58:32
Mensagens: 1133
Offline

Bom, se o arquivo for realmente grande, aí vc pode ter problema com estouro de memória se usar o DOM. Então recomendo o JColtrane. Tem um artigo sobre ele na MundoJava desse mês. Usando ele vc poderia selecionar apenas as informações q te interessam e fazer a persistência...

Renzo Nuccitelli

Engenheiro de Computação - ITA

http://nuccitec.com.br/
http://blog.nuccitec.com.br/
http://jcoltrane.sf.net
http://jfera.nuccitec.com.br/
http://code.google.com/p/webapp-ce/
elenice_sp
Smalltalk
[Avatar]
Membro desde: 09/06/2009 08:43:49
Mensagens: 2
Offline

Boa. Vou testar tb. Valeu!

E. R. F.
Systems Analyst
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team