Buenas lo que quisiera es eliminar la etiqueta "email" del documento xml. Tambien tengo que hacer otros botones con otras funciones pero con la ayuda de este primer ejemplo ya los otros sabre realizarlos. Mi duda es como "enlazo" el xml con el java si es que se puede decir asi. Lo que quiero es que al pulsar el boton "borrar todos los emails" se eliminen todas las etiquetas del documento xml que tendre mostrado en el text area que anteriormente habre abierto ahi. Para ello he creado un metodo "borrarElementos" donde ejecutare dicho código y posteriormente llamarlo desde el actionPerformed del botón para darle dicha acción. En el documento adjunto en el src esta el documento xml támbien. un saludo y gracias.
DOCUMENTO XML : <?xml version="1.0" encoding="UTF-8"?><!-- <?xml version="1.0" encoding="iso-8859-1"?> -->
public class e extends javax.swing.JFrame { public e() { initComponents(); }
/** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
jFrame2 = new javax.swing.JFrame(); jPanel1 = new javax.swing.JPanel(); jButtonAbrir = new javax.swing.JButton(); jButtonGuardar = new javax.swing.JButton(); jScrollPane2 = new javax.swing.JScrollPane(); jButtonEmail = new javax.swing.JTextArea(); jButton1 = new javax.swing.JButton(); jTextFieldSuma = new javax.swing.JTextField(); jLabelTitulo = new javax.swing.JLabel(); jButtonBorrar = new javax.swing.JButton(); jButtonBorrarEmail = new javax.swing.JButton();
jButton1.setText("Nota media de los alumnos"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } });
jLabelTitulo.setFont(new java.awt.Font("Arial Narrow", 1, 14)); // NOI18N jLabelTitulo.setText("Se puede crear el documento xml, abrirlo si ya lo tienes creado, modificarlo y sobrescribirlo o guardarlo en un documento nuevo si se prefiere.");
jButtonBorrarEmail.setText("Borrar todos los emails"); jButtonBorrarEmail.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonBorrarEmailActionPerformed(evt); } });
private void jButtonGuardarActionPerformed(java.awt.event.ActionEvent evt) { guardarArchivo(); //Se llama al metodo guardarArchivo. }
private void jButtonAbrirActionPerformed(java.awt.event.ActionEvent evt) { jButtonEmail.setText(abrirArchivo()); //Mostrar el archivo xml en el área de texto. }
private void jButtonBorrarActionPerformed(java.awt.event.ActionEvent evt) { jButtonEmail.setText(""); //Borrar todo el contenido del área de texto. }
NodeList listaNodos3=documento.getElementsByTagName("email"); for (int i=0;i<listaNodos3.getLength();i++){ Element elemento=(Element) listaNodos3.item(i); Element padre = (Element)e.getParentNode(); padre.removeChild(elemento); }
}
private String abrirArchivo() { String aux=""; String texto=""; try{ //llamamos el metodo que permite cargar la ventana. JFileChooser file = new JFileChooser(); file.showOpenDialog(file); //abrimos el archivo seleccionado. File abre = file.getSelectedFile(); //recorremos el archivo, lo leemos para plasmarlo en el area de texto. if(abre != null){ FileReader archivos=new FileReader(abre); BufferedReader lee=new BufferedReader(archivos); while((aux = lee.readLine())!= null){ texto += aux+ "\n"; } lee.close(); } }catch(IOException ex){ JOptionPane.showMessageDialog(null,ex+"" + "\nNo se ha encontrado el archivo","ADVERTENCIA!!!",JOptionPane.WARNING_MESSAGE); } return texto; //El texto se almacena en el JTextArea }
private void guardarArchivo() { try{ String nombre=""; JFileChooser file=new JFileChooser(); file.showSaveDialog(this); File guarda = file.getSelectedFile(); if(guarda != null){ nombre=file.getSelectedFile().getName(); //Guardamos el archivo y le damos el formato directamente, si queremos que se guarde en formato xml lo definimos como .xml FileWriter save = new FileWriter(guarda); //(guarda+".xml"); save.write(jButtonEmail.getText()); save.close(); JOptionPane.showMessageDialog(null,"El archivo se ha guardado Exitosamente","Información",JOptionPane.INFORMATION_MESSAGE); } }catch(IOException ex){ JOptionPane.showMessageDialog(null,"Su archivo no se ha guardado","Advertencia",JOptionPane.WARNING_MESSAGE); } }
public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold>
/* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new e().setVisible(true); } }); }
Buenas lo que quisiera es eliminar la etiqueta "email" del documento xml. Tambien tengo que hacer otros botones con otras funciones pero con la ayuda de este primer ejemplo ya los otros sabre realizarlos. Mi duda es como "enlazo" el xml con el java si es que se puede decir asi. Lo que quiero es que al pulsar el boton "borrar todos los emails" se eliminen todas las etiquetas del documento xml que tendre mostrado en el text area que anteriormente habre abierto ahi. Para ello he creado un metodo "borrarElementos" donde ejecutare dicho código y posteriormente llamarlo desde el actionPerformed del botón para darle dicha acción.
En el documento adjunto en el src esta el documento xml támbien. un saludo y gracias.
DOCUMENTO XML :
<?xml version="1.0" encoding="UTF-8"?><!-- <?xml version="1.0" encoding="iso-8859-1"?> -->
<nif>16965696L</nif>
<telefono>789654321</telefono>
ana.fdezgtrrez@hotmail.com
<direccion tipo="Calle" nombre="El percebe" numero="13" ciudad="Santander" codigo_postal="39302"/>
<falta_de_asistencia>4</falta_de_asistencia>
<notas nota_prg="8" nota_bd="9" nota_lm="6" nota_ed="5"/>
<nif>98765432H</nif>
<telefono>656566555</telefono>
yhyh@yahoo.com
<direccion tipo="Avenida" nombre="El pez" numero="5" ciudad="Suances" codigo_postal="39401"/>
<falta_de_asistencia>No tiene ninguna</falta_de_asistencia>
<notas nota_prg="3" nota_bd="7" nota_lm="6" nota_ed="8"/>
<nif>85632563H</nif>
<telefono>985632254</telefono>
asfe@yahoo.com
<direccion tipo="Avenida" nombre="botella" numero="3" ciudad="Alicante" codigo_postal="98542"/>
<falta_de_asistencia>9</falta_de_asistencia>
<notas nota_prg="3" nota_bd="7" nota_lm="6" nota_ed="8"/>
DOCUMENTO JAVA :
package ejertema10;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
import java.io.File;
import org.w3c.dom.NodeList;
public class e extends javax.swing.JFrame {
public e() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jFrame2 = new javax.swing.JFrame();
jPanel1 = new javax.swing.JPanel();
jButtonAbrir = new javax.swing.JButton();
jButtonGuardar = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jButtonEmail = new javax.swing.JTextArea();
jButton1 = new javax.swing.JButton();
jTextFieldSuma = new javax.swing.JTextField();
jLabelTitulo = new javax.swing.JLabel();
jButtonBorrar = new javax.swing.JButton();
jButtonBorrarEmail = new javax.swing.JButton();
javax.swing.GroupLayout jFrame2Layout = new javax.swing.GroupLayout(jFrame2.getContentPane());
jFrame2.getContentPane().setLayout(jFrame2Layout);
jFrame2Layout.setHorizontalGroup(
jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
jFrame2Layout.setVerticalGroup(
jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButtonAbrir.setText("Abrir");
jButtonAbrir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonAbrirActionPerformed(evt);
}
});
jButtonGuardar.setText("Guardar");
jButtonGuardar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonGuardarActionPerformed(evt);
}
});
jButtonEmail.setColumns(20);
jButtonEmail.setRows(5);
jScrollPane2.setViewportView(jButtonEmail);
jButton1.setText("Nota media de los alumnos");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabelTitulo.setFont(new java.awt.Font("Arial Narrow", 1, 14)); // NOI18N
jLabelTitulo.setText("Se puede crear el documento xml, abrirlo si ya lo tienes creado, modificarlo y sobrescribirlo o guardarlo en un documento nuevo si se prefiere.");
jButtonBorrar.setText("Borrar todo");
jButtonBorrar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonBorrarActionPerformed(evt);
}
});
jButtonBorrarEmail.setText("Borrar todos los emails");
jButtonBorrarEmail.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonBorrarEmailActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelTitulo, javax.swing.GroupLayout.DEFAULT_SIZE, 756, Short.MAX_VALUE)
.addComponent(jScrollPane2)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(288, 288, 288)
.addComponent(jButton1)
.addGap(78, 78, 78)
.addComponent(jTextFieldSuma, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jButtonAbrir)
.addGap(31, 31, 31)
.addComponent(jButtonGuardar)
.addGap(152, 152, 152)
.addComponent(jButtonBorrarEmail))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(53, 53, 53)
.addComponent(jButtonBorrar)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(6, 6, 6)
.addComponent(jLabelTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 366, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonAbrir)
.addComponent(jButtonGuardar)
.addComponent(jButtonBorrarEmail))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE)
.addComponent(jButtonBorrar)
.addGap(7, 7, 7)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jTextFieldSuma, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(20, 20, 20))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(11, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
private void jButtonGuardarActionPerformed(java.awt.event.ActionEvent evt) {
guardarArchivo(); //Se llama al metodo guardarArchivo.
}
private void jButtonAbrirActionPerformed(java.awt.event.ActionEvent evt) {
jButtonEmail.setText(abrirArchivo()); //Mostrar el archivo xml en el área de texto.
}
private void jButtonBorrarActionPerformed(java.awt.event.ActionEvent evt) {
jButtonEmail.setText(""); //Borrar todo el contenido del área de texto.
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void jButtonBorrarEmailActionPerformed(java.awt.event.ActionEvent evt) {
}
public class borrarElemento {
NodeList listaNodos3=documento.getElementsByTagName("email");
for (int i=0;i<listaNodos3.getLength();i++){
Element elemento=(Element) listaNodos3.item(i);
Element padre = (Element)e.getParentNode();
padre.removeChild(elemento);
}
}
private String abrirArchivo() {
String aux="";
String texto="";
try{
//llamamos el metodo que permite cargar la ventana.
JFileChooser file = new JFileChooser();
file.showOpenDialog(file);
//abrimos el archivo seleccionado.
File abre = file.getSelectedFile();
//recorremos el archivo, lo leemos para plasmarlo en el area de texto.
if(abre != null){
FileReader archivos=new FileReader(abre);
BufferedReader lee=new BufferedReader(archivos);
while((aux = lee.readLine())!= null){
texto += aux+ "\n";
}
lee.close();
}
}catch(IOException ex){
JOptionPane.showMessageDialog(null,ex+"" + "\nNo se ha encontrado el archivo","ADVERTENCIA!!!",JOptionPane.WARNING_MESSAGE);
}
return texto; //El texto se almacena en el JTextArea
}
private void guardarArchivo() {
try{
String nombre="";
JFileChooser file=new JFileChooser();
file.showSaveDialog(this);
File guarda = file.getSelectedFile();
if(guarda != null){
nombre=file.getSelectedFile().getName();
//Guardamos el archivo y le damos el formato directamente, si queremos que se guarde en formato xml lo definimos como .xml
FileWriter save = new FileWriter(guarda); //(guarda+".xml");
save.write(jButtonEmail.getText());
save.close();
JOptionPane.showMessageDialog(null,"El archivo se ha guardado Exitosamente","Información",JOptionPane.INFORMATION_MESSAGE);
}
}catch(IOException ex){
JOptionPane.showMessageDialog(null,"Su archivo no se ha guardado","Advertencia",JOptionPane.WARNING_MESSAGE);
}
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(e.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new e().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButtonAbrir;
private javax.swing.JButton jButtonBorrar;
private javax.swing.JButton jButtonBorrarEmail;
private javax.swing.JTextArea jButtonEmail;
private javax.swing.JButton jButtonGuardar;
private javax.swing.JFrame jFrame2;
private javax.swing.JLabel jLabelTitulo;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField jTextFieldSuma;
// End of variables declaration
}