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
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
Mas como você pretende converter o XML em Objeto se vc não conhece a estrutura?
É isso que eu quero saber =D
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.
Até tenho acesso a estrutura…
Mas o problema é que ela tem 53 páginas… só o ddt… =S
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).
Infelizmente só o DTD…
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:
[quote=thingol]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:
[/quote]
Blz cara…
Valeu…
Vou dar uma olhada…
**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í…
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…
Boa. Vou testar tb. Valeu!