Modificar Tags com XSTREAM

Eaí GUJzeiros, beleza?

Bem, estou com uma dúvida. Em minha aplicação, eu leio um XML e a partir dele eu defino o meu “Ambiente”, porém, a qualquer momento em meu programa, eu posso editá-lo; um frame será aberto com vários campos e um botão Salvar, pressionado tal botão, eu terei que MODIFICAR o meu XML Inicial que está mais ou menos assim:

<Ambiente> <Empresa>Somar Distribuidora</Empresa> <CodigoLoja>XX</CodigoLoja> <CheckOut>C01</CheckOut> <Operador>Romana</Operador> <PastaEntrada>C:\Legus\checkout\Entrada\</PastaEntrada> </Ambiente>

Então, como eu faço para ir na tag Empresa e modificar o seu valor?

PS:. Já procurei bastante no Fórum, há várias pessoas com a mesma dúvida e nenhum com resolução.

LEMBRANDO: USANDO XSTREAM!!

Obrigado!

Tente criar um bean através do seu xml e modifique o atributo empresa, depois gere novamente o xml quando precisar.
Dê uma olhada http://xstream.codehaus.org/tutorial.html

Mas assim, eu vou ter que reescrever todo XML né não?

Não tem como eu apenas pegar um nó?

XStream trabalha com objetos. Então você teria que criar um objeto Ambiente e nele modificar o atributo Empresa para então modificar o valor da tag.
Ou então para fazer o que você quer, use um classe que manipule por exemplo a API JDOM. Essa API te da acesso a cada tag do XML, mas vai te dar um pouco mais de trabalho.
Abaixo 2 tutoriais, 1 sobre XStream e outro sobre o JDOM.


RoMarcio, muito obrigado; lá li e reli o tuto sobre xstream. Embora eu reconheça que é um erro meu ficar trabalhando com xstream na leitura de XML, mas sempre que eu penso em aprender JDom me falta tempo.

Então, eu já tenho o Objeto Ambiente modificado, e é exatamente isso que eu quero: Modificar o valor da tag!

Agradeceria imensamente se me ensinassem a fazer isso!

Muito obrigado.

No tutorial que te passei o link sobre o XStream, mostra bem no inicio como você pode fazer isso.

1° você vai ler o xml de algum arquivo.
2° vai criar um objeto ambiente com os novos dados
3° vai usar o método que gera o xml através de novo objeto ambiente, e salvar o arquivo, substituindo o antigo.

Você não vai conseguir manipular diretamente a tag, por isso terá que criar o objeto e salvar todo o objeto novamente.

[quote=romarcio]

Você não vai conseguir manipular diretamente a tag, por isso terá que criar o objeto e salvar todo o objeto novamente.[/quote]

Muito Obrigado, minha pergunta foi respondida e o tópico Resolvido.

Eu realmente precisava saber se havia ou não um jeito de fazer diretamente…

mas com JDom deve dá né?

com getNode e tal…

Com JDom é possivel manipular a tag, mas você precisa ler todo o XML para então manipular tal tag. E após alterar o conteúdo da tag, salvar todo o XML novamente.