Erro na criação do XML

0 respostas
H

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();
		}

		
		
	}
Ele cria o seguinte XML pra mim:
- <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.

Criado 5 de julho de 2006
Respostas 0
Participantes 1