Eu estou com a classe abaixo onde eu gero um arquivo XML, só que não estou conseguindo deixar vários registros no mesmo arquivo… só consigo gravar o último, pois ele sobre poem um ao outro, falta um while ou um for sei la… só que tentei colocar mas mesmo assim ele fica sobrepondo… alguem poderia me ajudar?
packagebr.com.localizador;importjava.io.FileWriter;importjava.io.IOException;importorg.jdom.Attribute;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.output.XMLOutputter;publicclassGeradorXML{publicvoidgeraXML(Stringlatitude,Stringlongitude,Stringdescr){Documentdoc=newDocument();XMLOutputterxout=newXMLOutputter();Elementmarkers=newElement("markers");Elementmarker=newElement("marker");// "Setando" os atributosmarker.setAttribute("lat",latitude);// "Setando" outro atributo agora utilizando da classe AttributeAttributeprioridade=newAttribute("lng",longitude);marker.setAttribute(prioridade);// "Setando" outro atributo agora utilizando da classe AttributeAttributedescricao=newAttribute("descr",descr);marker.setAttribute(descricao);markers.addContent(marker);// Criando o documento XML (montado)doc.setRootElement(markers);try{// Criando o arquivo de saidaFileWriteraquivo=newFileWriter("c://arquivoXML.xml");// Imprimindo o XML no arquivoxout.output(doc,aquivo);System.out.println("Arquivo XML Gerado");}catch(IOExceptione){e.printStackTrace();}}}
Valeu jose… mas não estou conseguindo usar estes exemplos… vou dar umas pesquisadas…
josemanzoli
Não dá para eu testar seu código agora, senão te enviava alguma coisa!
P
Pacato
Valeu cara…
Eu to apanhando muito disso… não consigo colocar uma condição viável para ele incrementar tudo e só depois fechar o makers e gerar o arquivo…
josemanzoli
você tem que usar o jdom?
P
Pacato
Mudei a lógica, e adicionei onde pega os valores da planilha, e coloquei dentro do FOR dele, assim funcionou:
packagebr.com.localizador;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;importorg.jdom.Attribute;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.output.XMLOutputter;importjxl.Cell;importjxl.Sheet;importjxl.Workbook;importjxl.demo.XML;importjxl.read.biff.BiffException;publicclassGeradorXML{privatestaticfinalintLINHA_INICIAL=1;privateWorkbookworkbook;privateSheetsheet;publicGeradorXML(Filevr)throwsException,IOException,BiffException,ClassNotFoundException,SQLException{this.workbook=Workbook.getWorkbook(vr);this.sheet=workbook.getSheet(0);VerificadorCtr(vr);}publicvoidVerificadorCtr(Filevr){intnuLinhas=sheet.getRows();Documentdoc=newDocument();Elementmarkers=newElement("markers");for(intnuLinhaAtual=LINHA_INICIAL;nuLinhaAtual<nuLinhas;nuLinhaAtual++){LatitudeLongitudectr=carregarLinha(nuLinhaAtual);Stringdescricao=Integer.toString(nuLinhaAtual);Stringlatitude=ctr.getLatitude().replace(",",".");Stringlongitude=ctr.getLongitude().replace(",",".");Elementmarker=newElement("marker");// "Setando" os atributosmarker.setAttribute("lat",latitude);// "Setando" outro atributo agora utilizando da classe AttributeAttributeprioridade=newAttribute("lng",longitude);marker.setAttribute(prioridade);// "Setando" outro atributo agora utilizando da classe AttributeAttributedescr=newAttribute("descr",descricao);marker.setAttribute(descr);markers.addContent(marker);// Criando o documento XML (montado)doc.setRootElement(markers);System.out.println("inserindo coordenadas: "+" Latitude: "+latitude+" Longitude: "+longitude+" Linha: "+descricao);}XMLOutputterxout=newXMLOutputter();try{//Criando o arquivo de saidaFileWriterarquivo=newFileWriter(newFile("C://ArquivoXML.xml"));//Imprimindo o XML no arquivoxout.output(doc,arquivo);}catch(IOExceptione){e.printStackTrace();}}privateLatitudeLongitudecarregarLinha(intnuLinhaAtual){ValoresPlanilhaEnumplanilhaEnum=null;LatitudeLongitudelinhaRelatorio=newLatitudeLongitude();Cell[]celulas=sheet.getRow(nuLinhaAtual);for(intnuCelulaAtual=0;nuCelulaAtual<celulas.length;nuCelulaAtual++){Cellcelula=celulas[nuCelulaAtual];CelulasEnumcelulaXML=CelulasEnum.obterCelula(nuCelulaAtual);switch(celulaXML){caseLATITUDE:linhaRelatorio.setLatitude(celula.getContents());break;caseLONGITUDE:linhaRelatorio.setLongitude(celula.getContents());break;}}returnlinhaRelatorio;}}
josemanzoli
taí cara! se tiver dúvidas me avise.
importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStream;importjava.io.StringWriter;importjava.util.ArrayList;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerConfigurationException;importjavax.xml.transform.TransformerException;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult;importorg.w3c.dom.Document;importorg.w3c.dom.Element;importorg.w3c.dom.Node;publicclassGeradorXML{publicstaticvoidmain(Stringargs[]){ArrayList<Marker>list=newArrayList<Marker>();list.add(newMarker("1","2","bla"));list.add(newMarker("3","4","ble"));list.add(newMarker("5","6","bli"));GeradorXML.geraXML(list);}publicstaticvoidgeraXML(ArrayList<Marker>markerList){FileInputStreamfile=null;FileWriterarquivo=null;Documentdoc=null;Elementmarkers=null;booleanfileExists=false;try{file=newFileInputStream("C:\\Users\\T35332\\Documents\\ArquivoXml.xml");doc=getDocument(file);markers=(Element)doc.getElementsByTagName("markers").item(0);}catch(FileNotFoundExceptionf){doc=getDocument(null);markers=doc.createElement("markers");fileExists=true;}for(Markerm:markerList){Elementmarker=doc.createElement("marker");marker.setAttribute("lat",m.getLatitude());marker.setAttribute("lng",m.getLongitude());marker.setAttribute("descr",m.getDescricao());markers.appendChild(marker);}if(fileExists){doc.appendChild(markers);}try{arquivo=newFileWriter("C:\\Users\\T35332\\Documents\\ArquivoXml.xml");arquivo.write(docToString(doc));arquivo.close();System.out.println("Arquivo XML Gerado");}catch(IOExceptione){e.printStackTrace();}}publicstaticDocumentgeraMarker(MarkermarkerObj){Documentdoc=getDocument(null);returndoc;}privatestaticDocumentgetDocument(InputStreamfile){DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=null;Documentdoc=null;try{builder=factory.newDocumentBuilder();if(file==null){doc=builder.newDocument();}else{doc=builder.parse(file);}}catch(Exceptione){// TODO Auto-generated catch blocke.printStackTrace();}returndoc;}publicstaticStringdocToString(Documentdoc){DOMSourcedomSource=newDOMSource(doc);StringWriterwriter=newStringWriter();StreamResultresult=newStreamResult(writer);TransformerFactorytf=TransformerFactory.newInstance();Transformertransformer=null;try{transformer=tf.newTransformer();transformer.transform(domSource,result);}catch(TransformerConfigurationExceptione){// TODO Auto-generated catch blocke.printStackTrace();}catch(TransformerExceptione){// TODO Auto-generated catch blocke.printStackTrace();}returnwriter.toString();}}