Juino
Dezembro 18, 2009, 12:13pm
#1
Olá a todos,
preciso gravar um arquivo XML com o formato a seguir:
<Index_tipo tipo="Binario">
<indice>1</indice>
<path>\BCH\XCBR\Loc</path>
<endereco ip="127.0.0.1" porta="500"></endereco>
</Index_tipo>
Estou usando o XStream (que é muito simples de usar), o problema está na definição da classe para que ele interprete corretamente os atributos das tags Index_tipo (tipo) e endereco (ip e porta). Alguém sabe como fazer?
Obrigado
Usando anotações/alias.
Posta o Código ai, você ja tem as classes? Ja esta gerando um XML? Ou você esta querendo ler o XML??
Juino
Dezembro 18, 2009, 2:10pm
#3
Preciso gerar um XML (que vai ser lido por outro aplicativo).
Já tenho a classe que vai dar origem ao XML:
public class MapeamentoSDG {
private String tipo;
private int indice;
private String IP;
private int porta;
private String path;
// gets e sets
}
E agora to criando a classe pra montar o XML (por enquanto a saída ta na console mesmo, depois vou gravar num arquivo).
public class GeradorMapeamentoSDG {
public void main(String[] args){
MapeamentoSDG mapeamentoSDG = new MapeamentoSDG();
mapeamentoSDG.setTipo("Binario");
mapeamentoSDG.setIndice_SDG(1);
mapeamentoSDG.setPath("caminho");
mapeamentoSDG.setIP("127.0.0.1");
mapeamentoSDG.setPorta(5002);
XStream xStream = new XStream(new DomDriver());
xStream.alias("mapeamentoSDG", MapeamentoSDG.class);
System.out.println(xStream.toXML(mapeamentoSDG));
}
A saída está sendo:
<mapeamentoSDG>
<tipo>Binario</tipo>
<indice>1</indice>
<IP>127.0.0.1</IP>
<porta>5001</porta>
<path>caminho</path>
</mapeamentoSDG>
O que preciso é que fique como indicado na primeira mensagem.
Valeu
Juino
Dezembro 21, 2009, 9:20am
#4
Consegui formatar o XML como desejado usando métodos do XStream:
Classe Main[code]//…
XStream xStream = new XStream(new DomDriver());
xStream.alias("dbIndex", Loko.class);
xStream.useAttributeFor(Loko.class, "tipo");
xStream.useAttributeFor(Endereco.class, "ip");
xStream.useAttributeFor(Endereco.class, "porta");
//…[/code]
Classe Loko[code]public class Loko {
String tipo;
int indiceSDG;
String path;
Endereco enderecoSDG;
public Loko(){
enderecoSDG = new Endereco();
}
}
[/code]
Classe Endereco[code]public class Endereco {
String ip;
int porta;
}
[/code]
Se alguém precisar de mais alguma informação, tô aí.