Bom estou fazendo um curso porém faltei nas aulas sobre XML e me passaram apenas o código e eu gostaria de entender, alguém poderia comentar o código para mim minuciosamente? Eu procurei algumas formas de manipular o XML mas mesmo assim nada explicito, eu gostaria de entender cada comando e a lógica por trás.
Segue os códigos:
public void grava(String v_nome, String v_telefone, String v_email) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("agenda.xml");
Element elem = doc.getDocumentElement();
Element filho = doc.createElement("amigo");
elem.appendChild(filho);
Element tagNome = doc.createElement("nome");
Text text = doc.createTextNode(v_nome);
tagNome.appendChild(text);
filho.appendChild(tagNome);
Element tagTel = doc.createElement("telefone");
Text text1 = doc.createTextNode(v_telefone);
tagTel.appendChild(text1);
filho.appendChild(tagTel);
Element tagEmail = doc.createElement("email");
Text text2 = doc.createTextNode(v_email);
tagEmail.appendChild(text2);
filho.appendChild(tagEmail);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer trans = tf.newTransformer();
FileWriter fw = new FileWriter("agenda.xml");
StreamResult sr = new StreamResult(fw);
DOMSource recurso = new DOMSource(doc);
trans.transform(recurso, sr);
JOptionPane.showMessageDialog(null, "Dados cadastrados com sucesso !");
}
}
//-------------------------
public EntidadeXML busca(String pesnome) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("agenda.xml");
Element elem = doc.getDocumentElement();
NodeList amigos = elem.getElementsByTagName("amigo");
for(int i = 0; i< amigos.getLength();i++){
Element filhos = (Element) amigos.item(i);
NodeList nome = filhos.getElementsByTagName("nome");
Element tagnome = (Element) nome.item(0);
String nomefilho = tagnome.getTextContent();
NodeList tel = filhos.getElementsByTagName("telefone");
Element tagtel = (Element) tel.item(0);
String telfilho = tagtel.getTextContent();
NodeList email = filhos.getElementsByTagName("email");
Element tagemail = (Element) email.item(0);
String emailfilho = tagemail.getTextContent();
if(nomefilho.equalsIgnoreCase(pesnome)){
//System.out.println(nomefilho+ " " + telfilho + " "+ emailfilho);
EntidadeXML ex = new EntidadeXML(nomefilho,telfilho,emailfilho);
et = ex;
}
}
return et;
Se for contras as regras me avisem que eu apago.
Valeu!