Pessoal é o seguinte:
Pedi ajuda aqui no site sobre XML e fui muito bem atendido. Me indicaram várias APIs para XML e fiz uns testes verificando qual se adequaria melhor para minha situação, e a vencedora foi JDOM.
Me deparei com um problema: O código que fiz e que está abaixo:public static void main(String[] args) {
// TODO Auto-generated method stub
Element Canal = new Element("Canal");
Element NomeCanal = new Element("NomeCanal");
Element ImgCanal = new Element("ImgCanal");
Element DescrCanal = new Element("DescrCanal");
Element Programa = new Element ("Programa");
Element HoraInicio = new Element("HoraInicio");
Element NomePrograma = new Element("NomePrograma");
Element DescrPrograma = new Element("DescrPrograma");
Element Classificacao = new Element("Classificacao");
//"Setando" os atributos das tags de Canal
NomeCanal.setText("Rede Globo");
ImgCanal.setText("c:\teste.jpg");
DescrCanal.setText("Diversão para a família");
//Passa ao Canal as tags na ordem em que serao montadas
Canal.addContent(NomeCanal);
Canal.addContent(ImgCanal);
Canal.addContent(DescrCanal);
//Setando atributos das tags de Programa
HoraInicio.setText("10:10");
NomePrograma.setText("TV Globinho");
DescrPrograma.setText("Programa dedicado ao divertimento infantil");
Classificacao.setText("Livre");
//Define quais tags estarao dentro da tag programa
Programa.addContent(HoraInicio);
Programa.addContent(NomePrograma);
Programa.addContent(DescrPrograma);
Programa.addContent(Classificacao);
//Passa para a Tag Canal o Valor da Tag Programa
Canal.addContent(Programa);
//Criando o documento XML (montado)
Document doc = new Document();
doc.setRootElement(Canal);
//Escreve o documento XML em arquivo
FileOutputStream ArquivoEscrita = null;
try {
ArquivoEscrita = new FileOutputStream("C:\codigo1.xml");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
//Escrevendo o XML
XMLOutputter xout = new XMLOutputter();
try {
xout.output(doc, ArquivoEscrita);
System.out.println("Arquivo criado com sucesso");
} catch (IOException e) {
e.printStackTrace();
}
}
- <Canal>
<NomeCanal>Rede Globo</NomeCanal>
<ImgCanal>c:\teste.jpg</ImgCanal>
<DescrCanal>Diversão para a família</DescrCanal>
- <Programa>
<HoraInicio>10:10</HoraInicio>
<NomePrograma>TV Globinho</NomePrograma>
<DescrPrograma>Programa dedicado ao divertimento infantil</DescrPrograma>
<Classificacao>Livre</Classificacao>
</Programa>
</Canal>
A minha tag Programa deve ser repetida (as informações de dentro dela serão diferentes), só que já tentei de várias formas e não consegui.
O meu XML deveria ficar assim...
- <Canal>
<NomeCanal>Rede Globo</NomeCanal>
<ImgCanal>c:\teste.jpg</ImgCanal>
<DescrCanal>Diversão para a família</DescrCanal>
- <Programa>
<HoraInicio>10:10</HoraInicio>
<NomePrograma>TV Globinho</NomePrograma>
<DescrPrograma>Programa dedicado ao divertimento infantil</DescrPrograma>
<Classificacao>Livre</Classificacao>
</Programa>
- <Programa>
<HoraInicio>09:10</HoraInicio>
<NomePrograma>Mais Você</NomePrograma>
<DescrPrograma>Programa de culinária</DescrPrograma>
<Classificacao>Livre</Classificacao>
</Programa>
</Canal>
O erro que dá é
The Content already has an existing parent "Programa"
Não consegui fazer isso...se alguém puder me ajudar desde já agradeço.