Olá galera,
Eu achei um tutorial sobre essa biblioteca!! Muito boa e muito fácil de fazer um XML e ler também, porém tem 2 problemas.
1- Quando eu vou escrever outro XML, ele apaga o conteúdo do anterior e cria um novo, não tem como ir cadastrando no arquivo?
2- Como eu faço para atualizar o valor das tags que tem no XML? Por exemplo, tenho a tag Teste e quero atualizar para Teste 2… Tem como?
Vou postar aqui a classe que eu fiz para testar:
[code]/*
- Main.java
- Created on 8 de Outubro de 2007, 15:29
*/
package muralxml;
import java.io.;
import java.util.;
import org.jdom.;
import org.jdom.input.;
import org.jdom.output.*;
/**
*
-
@author anderson
*/
public class Main {
// Metodo para ler o arquivo XML
public static void ler() throws JDOMException, IOException {
File f = new File(“mural.xml”);SAXBuilder sb = new SAXBuilder(); Document d = sb.build(f); Element mural = d.getRootElement(); List elements = mural.getChildren(); Iterator i = elements.iterator(); while(i.hasNext()) { Element element = (Element)i.next(); System.out.println("Código: " + element.getAttributeValue("id")); System.out.println("Prioridade: " + element.getAttributeValue("prioridade")); System.out.println("Para: " + element.getChildText("para")); System.out.println("De: " + element.getChildText("de")); System.out.println("Corpo: " + element.getChildText("corpo")); }
}
// Metodo para escrever o arquivo
public static void escrever(String p, String d, String c) {
Element mural = new Element(“mural”);
Element mensagem = new Element(“mensagem”);
Element para = new Element(“para”);
Element de = new Element(“de”);
Element corpo = new Element(“corpo”);mensagem.setAttribute("id", "1"); Attribute prioridade = new Attribute("prioridade","-1"); mensagem.setAttribute(prioridade); para.setText(p); de.setText(d); corpo.setText(c); mensagem.addContent(para); mensagem.addContent(de); mensagem.addContent(corpo); mural.addContent(mensagem); Document doc = new Document(); doc.setRootElement(mural); try { Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("mural.xml"), "UTF8")); XMLOutputter xout = new XMLOutputter(); xout.output(doc,out); System.out.println("XML criado com sucesso!"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
}
/**
-
@param args the command line arguments
*/
public static void main(String[] args) throws IOException, JDOMException {
String opcao = “”;
String para, de, corpo;System.out.println("–Seja bem-vindo ao MuralXML–");
System.out.println(“Opções:”);
System.out.println(“1 - Criar o XML”);
System.out.println(“2 - Ler o XML”);
System.out.println(“3 - Sair”);
System.out.println("-----------------");do {
System.out.print("\nDigite a opção: ");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
opcao = in.readLine();if (opcao.equals("1")) { System.out.println("-----------------"); System.out.print("Informe para: "); in = new BufferedReader(new InputStreamReader(System.in)); para = in.readLine(); System.out.print("Informe de: "); in = new BufferedReader(new InputStreamReader(System.in)); de = in.readLine(); System.out.print("Informe corpo: "); in = new BufferedReader(new InputStreamReader(System.in)); corpo = in.readLine(); escrever(para, de, corpo); } else if (opcao.equals("2")) { ler(); } else if (opcao.equals("3")) { System.out.println("Saindo..."); } else { System.out.println("Opção Inválida!!!!!"); }
} while(!opcao.equals(“3”));
}
-
}
[/code]
Obrigado desde já pela ajuda.
Abraços.