kai: leere Zeilen

Hallo!

Ich bin mit meinem Problem immer noch nicht weiter. Ich habe in einer xml-datei tags gelöscht und speichere die datei wieder ab. das problem ist nur, dass er die tags zwar löscht, aber die zeilen bleiben da. also hab ich ganz viele leerzeieln in meiner xml-datei und zum bearbeiten ist das net sehr übersichtlich. kann mir da jmd einen tipp geben? such schon ein paar tage nach einer lösung und komm net weiter.

hier mal mein quellcode:
public class Unbekannt1 {

/* ***** Document vorbereiten ***** */
  Document  doc           = new DocumentImpl();
  Document  document_xml  = null;
  String    str_slash     = "\";

public void readXML (String str_CSVpfad,
                       String str_XMLpfad,
                       String str_Abb_XMLpfad)  {

XPathAPI                 xp            = new XPathAPI();
    DocumentBuilderFactory   dfactory      = null;
    Properties               prop          = null;
    String                   str_value = "",   str_CSV_zeile            = "";
    String                   str_NR   = "",   str_LCN             = "";
    String                   str_abNR = "",   str_dateiname            = "";
    NodeList                 nodelist_item = null, nodelist_childnodes_item = null;
    Element                  node_doktype  = null;
    Text                     node_inhalt   = null;
    java.io.FileInputStream  file          = null;
    FileWriter               write_file;
    RandomAccessFile         file_CSV;
    long                     long_length ;

/* ***** Properties für XML Ausgabe festlegen ***** */
    prop = OutputProperties.getDefaultMethodProperties("xml");
    prop.setProperty("encoding","iso-8859-1");
    try {
      dfactory = DocumentBuilderFactory.newInstance();
      document_xml = dfactory.newDocumentBuilder().parse(str_XMLpfad);
      if ((nodelist_item = xp.selectNodeList(document_xml.getDocumentElement(),"//item")) != null) {
        for (int i = 0; i < nodelist_item.getLength(); i++) {
          //Löschen der doktypes aud der item-liste
          nodelist_childnodes_item = nodelist_item.item(i).getChildNodes();
          for (int j = 0; j < nodelist_childnodes_item.getLength(); j++) {
            if (nodelist_childnodes_item.item(j).getNodeName() == "doktype") {
              nodelist_item.item(i).removeChild(nodelist_childnodes_item.item(j));
              NodeList nodelist_child_item = nodelist_item.item(i).getChildNodes();
            }
          }
        }
        System.out.println("lange "+(xp.selectNodeList(document_xml.getDocumentElement(),"//doktype")).getLength());
        for (int i = 0; i < nodelist_item.getLength(); i++) {
          str_value = nodelist_item.item(i).getAttributes().getNamedItem("lcn").getNodeValue();
          try {
            file_CSV          = new RandomAccessFile (str_CSVpfad, "r");
            /* ***** Zeilenweises Auslesen der Begriffsdatei ***** */
            long_length           = file_CSV.length();
            while( file_CSV.getFilePointer() != long_length) {
              str_CSV_zeile = file_CSV.readLine();
              int int_pos_end_NR = str_CSV_zeile.indexOf(";");
              if (int_pos_end_NR != -1) {
                str_NR  = str_CSV_zeile.substring (0, int_pos_end_NR);
                str_LCN = str_NR.substring (17, 25);
                str_abNR = str_CSV_zeile.substring (int_pos_end_NR+1, str_CSV_zeile.length());
                int int_pos_end_dateiname = str_abNR.indexOf(";");
                if (int_pos_end_dateiname != -1) {
                  str_dateiname = str_abNR.substring(0, int_pos_end_dateiname);
                }
                if (str_LCN.equals(str_value) == true) {
                  node_doktype = document_xml.createElement("doktype");
                  node_inhalt = document_xml.createTextNode(str_dateiname);
                  node_doktype.appendChild(node_inhalt);
                  nodelist_item.item(i).appendChild(node_doktype);
                }
              }
            }
          }catch (IOException ioe) {
            System.out.println(ioe.getMessage());
          }
        }
        /* ***** Ausgabe als formatierte XML-Datei ***** */
        Serializer serializer = SerializerFactory.getSerializer(prop);
        OutputStream out=new FileOutputStream(str_Abb_XMLpfad);
        serializer.setOutputStream(out);
        serializer.asDOMSerializer().serialize(document_xml);
      }
    } catch( ParserConfigurationException pce ) {
      System.out.println("ParserConfigurationException");
    } catch( SAXException se ) {
      System.out.println(se.getMessage()+"SAXException beim Lesen");
    } catch( IOException ioe) {
      System.out.println("IOException");
    } catch (javax.xml.transform.TransformerException tre) {
      System.out.println("TransformerException");
    }
  }
}

wäre echt super, wnen ihr mir weiterhelfen könntet.
LG Kai

  1. Hi,

    welchem Zweck dient die Methode Serializer.setOutputFormat(OutputFormat format)?

    Viele Grüße,
    Martin Jung

    1. Um ehrlich zu sein, bin ich mir nicht ganz sicher, aber benutzt man die Methode nicht, wenn man einen String hat und das ganze als XML-datei speichert oder wenn man eine XML-Datei hat und diese in einem String speichern möchte. Was bei mir gespeichert werden soll. habe das ganze doch nicht in einem STring gespeichert.

      Seh ich das völlig falsch???
      LG Kai

    2. Hi Martin,

      vielen vielen dank, damit gehts - zumindest im Wordpad kann man sich das schön anschaun, dass es eingerückt ist und keine leerzeilen drinnen sind. schöner wäre es noch, wenn es im Notepad ginge, aber da sinds nicht so übersichtlich aus. Trotzdem vielen lieben DAnk.
      VG Kai

      1. Hi,

        vielen vielen dank, damit gehts - zumindest im Wordpad kann man sich das schön anschaun, dass es eingerückt ist und keine leerzeilen drinnen sind. schöner wäre es noch, wenn es im Notepad ginge, aber da sinds nicht so übersichtlich aus. Trotzdem vielen lieben DAnk.

        Keine Ursache - und vergiß Notepad ;-)

        Viele Grüße,
        Martin Jung