Boa noite pessoal
Sou acadêmico de T.A.D.S e tenho uma dúvida para solucionar um problema com meu TCC.
Possuo um .xml com uma lista de produtos. Preciso importar essa lista através de um formulário html que está num .jsp, e gravar as informações contidas nesse xml, na minha entidade Produto. Cada nó será um registro a mais no meu banco de dados. No meu formulário que rodará na web. Tem um campo “buscar arquivo”, ao clicar em buscar preciso selecionar o arquivo num diretorio local da maquina que estiver acessando o sistema, e respectivamente gravar essa informação no meu banco, para que em outra ocasião eu possa visualizar esses registros em uma lista.
Se alguém puder me ajudar ficarei muito grato.
Obrigado.
Cara, usa XStream ( http://xstream.codehaus.org/ ). Com ele você serializa/deserializa seus objeto para XML de maneira bem fácil. É super simples de usar. Se precisar até tenho códigos que faz isso pra você, posso te passar amanhã (não estou com meu note aqui).
Obrigado gmmascarin.
Se for possível me mandar os exemplos que você tem eu agradeço. Meu e-mail é benhurmiguel@gmail.com, obrigado novamente.
Se for possivel poderia postar aqui? e que estou com o mesmo problema… assim eu e todos que forem procurar sobre o assunto ja encontrar aqui…
obrigado!
Pessoal, segue o exemplo:
1- Baixe as libs do xStream em http://xstream.codehaus.org/download.html
2- Convertendo um objeto para XML
XStream xstream = new XStream(new DomDriver("UTF-8"));
//Para omitir um atributo/campo
xstream.omitField(Classe.class, atributoOmitido);
//Resgistrar suas classes
xstream.registerConverter(new JavaBeanConverter(xstream.getMapper()) {
@Override
public boolean canConvert(Class type) {
List<Class><?>> classes = new ArrayList<Class><?>>();
classes.add(Classe1.class);
classes.add(Classe2.class);
return classes.contains(type);
}
});
//Definindo um alias para sua classe
xstream.alias("ApelidoClasse", Classe.class);
//Convertendo seu objeto para XML
String xml = xstream.toXML(objeto);
Agora que você tem seu objeto na forma de String faça o que for mais conveniente, como por exemplo salvar em um arquivo com java.io
2-Convertendo um XML para objeto
XStream xstream = new XStream(new DomDriver("ISO-8859-1"));
//Definindo o alias da sua classe
xstream.alias("ApelidoClasse", Classe.class);
//arquivo a ser importado
File importFile = new File("C:/blablabla/arquivo.xml");
//Realiza a conversão
TipoObjeto obj = (TipoObjeto) xstream.fromXML(importFile);
Faça o que for conveniente com o objeto, como gravar no banco de dados.
Abraços
[quote=gmmascarin]Pessoal, segue o exemplo:
1- Baixe as libs do xStream em http://xstream.codehaus.org/download.html
2- Convertendo um objeto para XML
XStream xstream = new XStream(new DomDriver("UTF-8"));
//Para omitir um atributo/campo
xstream.omitField(Classe.class, atributoOmitido);
//Resgistrar suas classes
xstream.registerConverter(new JavaBeanConverter(xstream.getMapper()) {
@Override
public boolean canConvert(Class type) {
List<Class><?>> classes = new ArrayList<Class><?>>();
classes.add(Classe1.class);
classes.add(Classe2.class);
return classes.contains(type);
}
});
//Definindo um alias para sua classe
xstream.alias("ApelidoClasse", Classe.class);
//Convertendo seu objeto para XML
String xml = xstream.toXML(objeto);
Agora que você tem seu objeto na forma de String faça o que for mais conveniente, como por exemplo salvar em um arquivo com java.io
2-Convertendo um XML para objeto
XStream xstream = new XStream(new DomDriver("ISO-8859-1"));
//Definindo o alias da sua classe
xstream.alias("ApelidoClasse", Classe.class);
//arquivo a ser importado
File importFile = new File("C:/blablabla/arquivo.xml");
//Realiza a conversão
TipoObjeto obj = (TipoObjeto) xstream.fromXML(importFile);
Faça o que for conveniente com o objeto, como gravar no banco de dados.
Abraços[/quote]
Valeuu!! mto bom mesmo!!
Vlw, muito obrigado pelo exemplo, já estou utilizando.
[quote=daniesouza][quote=gmmascarin]Pessoal, segue o exemplo:
1- Baixe as libs do xStream em http://xstream.codehaus.org/download.html
2- Convertendo um objeto para XML
XStream xstream = new XStream(new DomDriver("UTF-8"));
//Para omitir um atributo/campo
xstream.omitField(Classe.class, atributoOmitido);
//Resgistrar suas classes
xstream.registerConverter(new JavaBeanConverter(xstream.getMapper()) {
@Override
public boolean canConvert(Class type) {
List<Class><?>> classes = new ArrayList<Class><?>>();
classes.add(Classe1.class);
classes.add(Classe2.class);
return classes.contains(type);
}
});
//Definindo um alias para sua classe
xstream.alias("ApelidoClasse", Classe.class);
//Convertendo seu objeto para XML
String xml = xstream.toXML(objeto);
Agora que você tem seu objeto na forma de String faça o que for mais conveniente, como por exemplo salvar em um arquivo com java.io
2-Convertendo um XML para objeto
XStream xstream = new XStream(new DomDriver("ISO-8859-1"));
//Definindo o alias da sua classe
xstream.alias("ApelidoClasse", Classe.class);
//arquivo a ser importado
File importFile = new File("C:/blablabla/arquivo.xml");
//Realiza a conversão
TipoObjeto obj = (TipoObjeto) xstream.fromXML(importFile);
Faça o que for conveniente com o objeto, como gravar no banco de dados.
Abraços[/quote]
Valeuu!! mto bom mesmo!! [/quote]
Após ter o arquivo como adicionar um novo campo(TAG) ao arquivo.xml ?
conseguir adicionar uma tag a mais usando duas classes com o código abaixo:
[code]XStream xstream = new XStream();
xstream.alias("usuario", Usuario.class);
xstream.alias("tweet", Tweet.class);
Usuario usuario = new Usuario();
usuario.setLogin("petccufcg");
Tweet tweet = new Tweet();
tweet.setMensagem("#News XStream - Converta objetos Java para XML - Por @ss");
Tweet tweet2 = new Tweet();
tweet2.setMensagem("Converta objetos Java para XML ");
usuario.addTweet(tweet);
usuario.addTweet(tweet2);
String xml = xstream.toXML(usuario);[/code]
obtive:
<usuario>
<login>petccufcg</login>
<tweets>
<tweet>
<mensagem>#PETNews XStream - Converta objetos Java para XML - Por @CMPaes</mensagem>
<timestamp>2013-02-19 15:36:35.933</timestamp>
</tweet>
<tweet>
<mensagem>Converta objetos Java para XML </mensagem>
<timestamp>2013-02-19 15:36:35.933</timestamp>
</tweet>
</tweets>
</usuario>
mas gostaria de adicionar utilizando apenas uma classe, por exemplo, a classe tweet no caso acima.
algué saberia dizer se é possível?