Boa Noite, estou começanco com manipulação de XML no Java e estou com problemas de caracteres tanto na hora de criar quanto na hora de adicionar.
Os caracteres como “ç” e “~” ficam assim Descrição (Descrição) e eu não estou conseguindo arrumar isso.
Estou postando meus codigos, tanto de criação como de adição. Ambos estão funcionando corretamente, com exceção deste problema dos caracteres.
CODIGO DE CRIAÇÃO
protected void NovoXML(String LData, String LAssunto, String LDescricao) {
Element ListaLembretes = new Element("ListaLembretes");
Element Lembrete = new Element("Lembrete");
Element Data = new Element("Data");
Element Assunto = new Element("Assunto");
Element Descricao = new Element("Descricao");
Data.setText(LData);
Assunto.setText(LAssunto);
Descricao.setText(LDescricao);
Lembrete.setAttribute("ID", "0");
Lembrete.addContent(Data);
Lembrete.addContent(Assunto);
Lembrete.addContent(Descricao);
ListaLembretes.addContent(Lembrete);
Document XMLLembrete = new Document();
XMLLembrete.setRootElement(ListaLembretes);
this.SalvarXML(XMLLembrete, cbUsuario.getSelectedItem().toString());
}
protected void SalvarXML(Document XMLDoc, String LUsuario) {
try {
Writer Arquivo = new OutputStreamWriter(new FileOutputStream("Lembretes_"
+ LUsuario + ".xml"));
XMLOutputter ArqXML = new XMLOutputter();
ArqXML.setFormat(Format.getPrettyFormat().setEncoding("ISO-8859-1"));
ArqXML.output(XMLDoc, Arquivo);
JOptionPane.showMessageDialog(this, "Lista de Lembretes Criada!",
"LEMBRETES!", JOptionPane.INFORMATION_MESSAGE);
} catch (FileNotFoundException ex) {
Logger.getLogger(XMLFrame.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Não foi possivel salvar o Arquivo!");
} catch (IOException ex) {
Logger.getLogger(XMLFrame.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Não foi possivel salvar o Arquivo!");
}
}
CODIGO DE ADIÇÃO
protected void AddXML (String LData, String LAssunto, String LDescricao){
try {
DocumentBuilderFactory ArqXML = DocumentBuilderFactory.newInstance();
DocumentBuilder BuildXML = ArqXML.newDocumentBuilder();
org.w3c.dom.Document DocXML = BuildXML.parse("Lembretes_" +
cbUsuario.getSelectedItem().toString() + ".xml");
Node Lembretes = DocXML.getLastChild();
Node NovoLembrete = DocXML.createElement("Lembrete");
Node NovaData = DocXML.createElement("Data");
NovaData.setTextContent(LData);
Node NovoAssunto = DocXML.createElement("Assunto");
NovoAssunto.setTextContent(LAssunto);
Node NovaDesc = DocXML.createElement("Descricao");
NovaDesc.setTextContent(LDescricao);
NovoLembrete.appendChild(NovaData);
NovoLembrete.appendChild(NovoAssunto);
NovoLembrete.appendChild(NovaDesc);
Attr NovoID = DocXML.createAttribute("ID");
NovoID.setValue(String.valueOf(UltimoID()+1));
NamedNodeMap AttLembrete = NovoLembrete.getAttributes();
AttLembrete.setNamedItem(NovoID);
Lembretes.appendChild(NovoLembrete);
Transformer InsXML = TransformerFactory.newInstance().newTransformer();
InsXML.setOutputProperty(OutputKeys.INDENT, "yes");
StreamResult ResXML = new StreamResult(new FileWriter(new File("Lembretes_" +
cbUsuario.getSelectedItem().toString() + ".xml")));
DOMSource ScrXML = new DOMSource(DocXML);
InsXML.transform(ScrXML, ResXML);
String StrXML = ResXML.getWriter().toString();
System.out.println(StrXML);
JOptionPane.showMessageDialog(this, "Lembrete Adicionado!",
"LEMBRETES!", JOptionPane.INFORMATION_MESSAGE);
} catch (ParserConfigurationException ex) {
Logger.getLogger(XMLFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (SAXException ex) {
Logger.getLogger(XMLFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(XMLFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (TransformerConfigurationException ex) {
Logger.getLogger(XMLFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (TransformerException ex) {
Logger.getLogger(XMLFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}