Olá pessoal,
Como faço para criar e gravar dados em um arquivo XML , usando java ?
Obrigado.
Olá pessoal,
Como faço para criar e gravar dados em um arquivo XML , usando java ?
Obrigado.
Procure pela API JDOM.
Gostaria de ver através de um exemplo.
No tutorial do GUJ só tem um exemplo de leitura de um arquivo XML.
De uma olhada nisso:
Verifiquei o exemplo, porém meu arquivo precisa gravar mais coisas, como por exemplo a linha inicial do arquivo :
<?xml version="1.0" encoding="utf-8"?>preciso gravar também campos com atributos:
VOXlans.Kernel 17/Oct/2006 12:08:02 OnStart() - Inicio da carga do serviço VOXlansPelo que vi, o XStream não consegue gerar um XML como o do exemplo que enviei.
Tem algum outro jeito ?
Veja se ele consegue alterar o arquivo xml, esse cabeçario deixe como padrão e adicione o novo conteudo no arquivo, talves isso resolva seu problema!
bom, aumentando a duvida, já q estamos no assunto, é o seguinte, usei o XStream para gerar o arquivo, soh que preciso saber como adicionar mais coisas no arquivo depois, sem que de erro, pois quando mando adicionar ao final do arquivo, ele adiciona toda a estrutura denovo, e nao é isso q preciso.
Bom dia…
Todas as suas duvidas o xstream dá conta
Sobre atributos, de uma olhada no tutorial de alias:
http://xstream.codehaus.org/alias-tutorial.html
Sobre o cabecalho, note que o Xstream é uma facade para um driver, seja o dom, sax, stax etc. Portanto o responsavel por escrever ou interpretar aquela linha é o driver, e nao o xstream. Para escrever aquela linha, a sugestao mais comum na lista de usuarios é que voce mesmo escreva, caso o driver nao o faca (normalmente é isso mesmo).
Tem um tutorial novo que deve sair com a proxima versao do xstream tambem, voce pode baixar o fonte do subversion se quiser.
Abraço
olá pessoal, aproveitando o tópico, gostaria de tirar uma dúvida.
tenho um XML q deve ser setado como atributo de uma classe,
mas qdo faço isso, ocorre o seguinte erro:
suas tags ficam todas ilegíveis, alguém poderia me ajudar, to usando o Xstream para trabalhar como o XML?
obs:aonde tah em vermelho pode-se observar que a tag está sendo repetida novamente. :?:
Na verdade você tem uma String que deve ser setada como atributo… acontece que essa string é composta por código xml. Para ser compatível com qualquer string, todo < e > deve ser “escapado”, portanto o resultado fica esse que não é o que você deseja.
Você tem duas opções, uma é sobreescrever o objeto responsável por efetuar escapes e cancelar tal escape e outra é escrever um conversor proprio.
Para escrever um conversor de uma olhada no tutorial do mesmo.
Para sobreescrever o responsavel por escapes, eu nao lembro de cabeça, mas olhando a lista de discussao do xstream você vai achar exemplos.
Abraço
Guilherme
Guilherme, vc diz q seria um conversor como se fosse pra ler um atributo da tag?
tipo se eu tiver uma tag , eu terei q criar um conversor pra ler este atributo id, eh esse tipo de conversor?
Ana Carla
No seu exemplo voce precisa fazer:
NFE nfe = new NFE();
nfe.setId(14);
xstream = new XStream();
xstream.useAttributeFor("id", int.class);
ou na versão do subversion:
NFE nfe = new NFE();
nfe.setId(14);
xstream = new XStream();
xstream.useAttributeFor(NPE.class, "id");
No exemplo que eu comentei, é quando uma variavel membro possui codigo xml dentro dela, algo como:
NFE nfe = new NFE();
nfe.setBlaBla("<myattribute>whowhowho</myattribute>");
xstream = new XStream();
// use um conversor diferente ou troque o "escaper"
ola Guilherme,
estou passando pelo mesmo problema, mas não sei como usar esse escaper… vc teria algum exemplo?
Tenho sim, da uma olhada que o Jim fala como fez isso:
http://www.nabble.com/Need-to-serialize-String-containing-XML-fragment-t1975313.html
Abraço
Guilherme
Pessoal estou precisando de ajuda novamente,
na minha aplicação eu vou ate o banco e pego um xml,a minha classe java transforma essa xml em um objeto em memória, leio um ArrayList, pertencente a este objeto, e retiro por exemplo, o primeiro objeto desta lista e o transformo novamente para um xml para verificação do certificado digital de cada elemento desta lista, mas o problema começa ae, qdo eu converto de objeto para xml perco o valor de alguns atributos e o meu XStream diz não encontrar uma tag que estah lá,
Alguma sugestão :?:
Este eh o xml criado
A tag em vermelho eh a q ele diz não encontrar e a tag em azul eh a que perde a referencia dos valores.
:?:
O ideal é ver o código de configuração e o das classes para tentar situar melhor o que pode estar sendo feito de errado
Abraço
Guilherme
Valeu guilherme, mas acabei achando o meu próprio erro!
Eu to querendo saber o seguinte, eu tenho um XML q eh armazenado no banco e qdo eu pego ele e o transformo em objeto em memória o XStream tah bagunçando a ordem dos elementos e isso tah implicando em um schema errado inclusive em uma assinatura diferente digital q acaba não batendo.
Eu tenho como resolver isso, ou seja, fazer com q o XML gerado a partir do objeto em memória, escreva os elementos em uma determiada ordem?
Alguma idéia do pq dessa inversão dos elementos dentro do XML?