Adesso ti spiego quello che dovrebbe fare il PROGRAMMA finale....
Ok ora ho fatto il parser dom, ma quei System.out.println nel programma finale NON servono...

Io alla fine devo confrontare alcune stringhe della classe Body con quelle della classe Stile.
Alla fine devo fare dei controlli es. il testo deve essere in Times New Romans e di carattere 12 e 13.
Se è tutto a posto (penso generando un file .html, se no dimmi tu in che modo) scrivo ok il file in questione rispetta tutti i vincoli.
Se invece non li rispetta dico. il file non rispetta questo o quel vincolo...
capito più o meno cosa intendo?

Solo che prima di fare queste cose dovevo decidere se usare una applet o una servlet in modo da modificare il programma di conseguenza...

PEr quanto riguarda il JfileChooser ho risolto così:
codice:
import java.io.File;
import javax.swing.*;

public class Application  {
    
  public static void main(String args[]) {
  
    JFileChooser fc = new JFileChooser();
    fc.setApproveButtonText("Apri"); //decidi cosa mettere nel pulsante
    fc.setDialogTitle("Seleziona XML"); //imposti nome JFileCHooser    
    fc.setFileFilter(new XMLFilter());
    int value = fc.showOpenDialog(null);

    if ( value == JFileChooser.APPROVE_OPTION ) {
      File f = fc.getSelectedFile();
      System.out.println("É stato selezionato il file " + f);
    }
    if ( value == JFileChooser.CANCEL_OPTION ) {

      System.out.println("Hai fatto annulla");
    }
     if ( value == JFileChooser.ERROR_OPTION ) {

      System.out.println("ERRORE");
    }
    System.exit(0);
  }

}
e con questo filtro
codice:
import javax.swing.filechooser.*;

public class XMLFilter extends FileFilter  {
  public String getDescription() {
    return "file xml";
  }

  public boolean accept(java.io.File file) {
    return file.isDirectory() || file.getName().endsWith(".xml");
  }
}