Editar arquivo xml com Java

Olá

Estou fazendo um projeto e queria gerenciar um arquivo xml por Java

Colocarei uma parte do arquivo XML e não ele todo só como exemplo.

[code]<?xml version="1.0" encoding="utf-8"?>


[/code]

Cada atributo desses eu queria editar através de alguma classe Java que eu criar,
Exemplo: no content mudar o title de MEDICINA INTENSIVA para Sistemas de informação alguma coisa assim.

Minha dúvida é pq não consigo colocar codigo java no arquivo xml, no jsp é possível usar o <% %> para codigos em java, mas no xml isso não é possível.

Obrigado

Gustavo.L

A solução mais apropriada seria utilizar uma das várias APIs existentes para manipulação de XML, para poder ler o arquivo e editar as suas propriedades.

Mas pelo que entendi, você está querendo gerar uma saída XML de uma requisição, correto?!?

Se esse for o caso, você pode criar um página JSP e fazer com que a saída dela seja o seu arquivo XML, sem nenhum problema. Não é a solução mais indicada, mas funciona. Basta ir imprimindo no JSP (out.println()) as tags do seu arquivo XML.

Os browsers irão compreender a saída resultante como XML e a apresentaram como tal.

É mais ou menos isso que você está querendo fazer?!?

Até mais!

Ybadoo
http://www.ybadoo.com.br/

É mais ou menos isso, o xml já existe, só quero reescreve-lo sempre que houver uma modificação, só que não sei fazer isso… =/

usa o xstream!

ele vai te facilitar muito pq terá uma classe java que vai representar o xml com todos os atributos, quando precisar salvar é só mandar da write do objeto com os valores e pronto…

http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html#toXML(java.lang.Object, java.io.OutputStream)

ai vc passa o fileoutputstream e pronto

Já vi um tutorial com essa classe mas ele não gera um xml de acordo com o que eu quero… no exemplo ele gera um xml como este:

<list> <Pessoa> <email>vinci_amorim@yahoo.com.br</email> <foneComercial class="Telefone"> <ddd>55</ddd> <numero>5555 5555</numero> </foneComercial> <nome>Vinci Pegoretti Amorim</nome> </Pessoa> </list>

O que eu quero deve ficar igual a este

<content title="MEDICINA INTENSIVA" img="banner/deploy/thumbnails/mi.jpg" icon="banner/deploy/thumbnails/mi.jpg" transition="fade" link="#"> </content> <content title="QSMS" img="banner/deploy/qsms.jpg" icon="banner/deploy/qsms.jpg" transition="cube" link="#"> </content>

Dessa forma fica bem diferente e os atributos vem de uma classe específica o que não é o meu caso… =/

eu to tentando te ajudar… me ajuda tb lendo a documentação por favor…

http://xstream.codehaus.org/alias-tutorial.html
ele faz um aliasField

Obrigado, estou tentando tbm, estou lendo exatamente a parte do Alias…

Ele conseguiu setar Id=5 e Sexo=“Masculino” no exemplo, só que não sei como…

[quote=nextuser]eu to tentando te ajudar… me ajuda tb lendo a documentação por favor…

http://xstream.codehaus.org/alias-tutorial.html
ele faz um aliasField[/quote]

cara liga os pontos le oq escrevi

faz na mão… escreve o xml todo com string += que ta bom

cara agora se vira!!!

[code]import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;

public class Roteador {

public static void main(String[] args) {
	XStream xs = new XStream();
	xs.processAnnotations(Content.class);
	Content content = new Content();
	content.setTitle("QSMS");
	content.setImg("banner/deploy/qsms.jpg");
	content.setIcon("banner/deploy/qsms.jpg");
	content.setTransition("cube");
	content.setLink("#");

	System.out.println(xs.toXML(content));

}

@XStreamAlias("content")
private static class Content {
	@XStreamAsAttribute
	private String title;
	@XStreamAsAttribute
	private String img;
	@XStreamAsAttribute
	private String icon;
	@XStreamAsAttribute
	private String transition;
	@XStreamAsAttribute
	private String link;

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getImg() {
		return img;
	}

	public void setImg(String img) {
		this.img = img;
	}

	public String getIcon() {
		return icon;
	}

	public void setIcon(String icon) {
		this.icon = icon;
	}

	public String getTransition() {
		return transition;
	}

	public void setTransition(String transition) {
		this.transition = transition;
	}

	public String getLink() {
		return link;
	}

	public void setLink(String link) {
		this.link = link;
	}

}

}[/code]

resultado

<content title="QSMS" img="banner/deploy/qsms.jpg" icon="banner/deploy/qsms.jpg" transition="cube" link="#"/>