String-Verarbeitung

-starter-

Neuling
Thread Starter
Mitglied seit
18.03.2002
Beiträge
306
Hallo,

ich hab in einem Java-Programm eine UTF-Datei (Nebenbei:wie geht eigentlich eine Normale .txt-Datei? ich kenn nur .writeUTF(String s)??) die in etwas so aussieht (wie XML):

...
<eintrag>Text</eintrag>
<eintrag>Noch mehr TExt</eintrag>
<eintrag>bla bla</eintrag>
...

Wie kann ich nun aus diesem String den z.B. 3. Eintrag als String herausfiltern? Mit string.index(..) ging's nicht.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Da wirst du wahrscheinlich regulaere Ausdruecke benutzen muessen. Wie du das genau in Java einsetzen kannst, weiß ich leider nicht.
 
Hi.
Eine normale Dateien kannst du über den FileOutputstream schreiben.
z.B.
Code:
boolean anBestehendeDateiAnhaengen = false;
String text = "Das ist der String, der in die Datei geschrieben werden soll";
try{
  FileOutputstream output = new FileOutputstream("C:\\Temp\\Testdatei.txt", anBestehendeDateiAnhaengen);
  output.write(text.getBytes());
  out.close();
}
catch(Exception ex){
  ex.printStackTrace();
}

Nun zum zweiten Teil.
Du kannst entweder über ".indexOf()" gehen, oder einen "StringTokenizer" benutzen oder aber du benutzt einen XML-Parser (der Beispieltext den du gepostet hast sieht nach XML aus).

Wenn du über ".indexOf" gehst, musst du halt so lange den String parsen, bis du z.B. an genau dieser Stelle bist.
D.H. wenn du den 3. Eintrag haben willst, dann musst du eben drei mal indexOf aufrufen und die Startposition immer weiter verschieben.

Gruß CryingCat
 
ah, so geht das also (zu 1).

Wegen 2: Das mit dem XML-Parser wäre schon schöner. Ich hatte nämlich vor, die Daten als XML-File zu exportieren und dann u.Umständen diese via XSLT zu einem XML-FO-Document zu machen, das ich dann wiederum mit FOP (vom Apache-Project) zu einem PDF machen könnte.

Weißt du zufällig, wie ich einen Parser oder auch FOP einbinde?
 
Hi, also so gut kenn ich mich mit den XML-Parsern leider nicht aus.
Ich benutze normalerweise den DOM-Parser.

Hier mal ein Beispiel wie soetwas aussieht:
Code:
String xml = ".....<eintrag>Text</eintrag><eintrag>Noch mehr TExt</eintrag><eintrag>bla bla</eintrag>.....";

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document        doc     = builder.parse(new ByteArrayInputStream(xml.getBytes()));

Node root_node          = doc       .getDocumentElement();  // root
NodeList nodes          = root_node .getChildNodes();

try{
  for(int i=0; i<nodes.getLength(); i++){
    Node node = nodes.item(i);

    NodeList child_nodes  = node.getChildNodes();

    for(int j=0; j<child_nodes.getLength(); j++){
      Node child_node = child_nodes.item(j);

      if("eintrag".equals(child_node.getNodeName())){
        System.out.println("Log:... [EINTAG] [NR] "+j+" \t [WERT] "+child_node.getNodeValue());
      }
    }
  }
}
catch(Exception ex){
  ex.printStackTrace();
}

Hier noch ein Link der dir sicherlich Hilft.
http://www.torsten-horn.de/techdocs/java-xml.htm

Gruß CryingCat
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh