Hallo erst mal,
ich bin neu hier und habe ein kleines Problem hoffe ihr könnt mir weiterhelfen.
Vorab ich kann Java net so gut also ich bin für jede Kritik offen.
Meine Problemstellung ist:
Ich habe mehrere XML files in vielen verschiedenen Unterverzeichnissen. Die XML files mit dem kommpletten Pfad sind in einer .txt datei Zeilenweise abgespeichert. Sprich:
C:\Ordner\Ordner\Datei1.xml
C:\Ordner\Ordner\Unterordner\Datei2.xml
usw.
Nun soll aus jeder XML bestimmte Informationen ausgelesen werden, nur Bestimmte. z.B.:
<Datum>
<Sprache>
Da in einigen files nicht alle infos stecken soll null ausgegeben werden wenn nix gefunden wird.
Ich möchte jetzt das immer eine XML aufgemacht wird nach den kriterien duchsucht wird und dann in ein textfile geschrieben wird und dann das nächste xml bearbeitet wird bis die liste der Pfade mit den XML dateien abgearbeitet wurde.
Ich habe was versucht um den XML code zu lesen das klapt eigentlich auch schon gut nur kann ich das nur aus einer Datei. Ich möchte aber nicht alle Pfade eingeben sondern die aus der .txt file auslesen lassen.
Also sprich eine schleife da habe ich was versucht aber er gibt mir in mein neues .txt nur 1 Zeile aus und nicht 3 obwohl in der Pfad.txt 3 Pfade drinnen stehen nimmt er mir nur den ersten.
Hoffe jemand kann mir einen rat geben, vielleicht geht des ja auch besser wie gesagt war bis jetzt nur so ein versuch.
Danke schon mal im vorraus.
Gruß Thomas
Hier mein Code
ich bin neu hier und habe ein kleines Problem hoffe ihr könnt mir weiterhelfen.
Vorab ich kann Java net so gut also ich bin für jede Kritik offen.
Meine Problemstellung ist:
Ich habe mehrere XML files in vielen verschiedenen Unterverzeichnissen. Die XML files mit dem kommpletten Pfad sind in einer .txt datei Zeilenweise abgespeichert. Sprich:
C:\Ordner\Ordner\Datei1.xml
C:\Ordner\Ordner\Unterordner\Datei2.xml
usw.
Nun soll aus jeder XML bestimmte Informationen ausgelesen werden, nur Bestimmte. z.B.:
<Datum>
<Sprache>
Da in einigen files nicht alle infos stecken soll null ausgegeben werden wenn nix gefunden wird.
Ich möchte jetzt das immer eine XML aufgemacht wird nach den kriterien duchsucht wird und dann in ein textfile geschrieben wird und dann das nächste xml bearbeitet wird bis die liste der Pfade mit den XML dateien abgearbeitet wurde.
Ich habe was versucht um den XML code zu lesen das klapt eigentlich auch schon gut nur kann ich das nur aus einer Datei. Ich möchte aber nicht alle Pfade eingeben sondern die aus der .txt file auslesen lassen.
Also sprich eine schleife da habe ich was versucht aber er gibt mir in mein neues .txt nur 1 Zeile aus und nicht 3 obwohl in der Pfad.txt 3 Pfade drinnen stehen nimmt er mir nur den ersten.
Hoffe jemand kann mir einen rat geben, vielleicht geht des ja auch besser wie gesagt war bis jetzt nur so ein versuch.
Danke schon mal im vorraus.
Gruß Thomas
Hier mein Code
Code:
import java.io.*;
public class XMLlesen {
public static String alles(String tag, String xmlDateName) throws java.io.IOException {
String ausgabe = null;
String Text = null;
String Next = null;
int laenge1 = 0;
int laenge2 = 0;
BufferedReader b2 = new BufferedReader(new FileReader ("C:\\streams.txt"));
while ((xmlDateName = b2.readLine()) != null)
{
BufferedReader b1 = new BufferedReader(new FileReader (xmlDateName));
//XML einlesen und alle Space und tabs wegmachen
while ((Text = b1.readLine()) != null) {
Next = Text.trim();
laenge1 = Next.length()-1;
laenge2 = tag.length();
int ende = laenge1 - laenge2;
if (Text.contains(tag)) {
ausgabe = Next.substring(laenge2, ende);
}
}
}
return ausgabe;
}
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String args[]) throws java.io.IOException {
PrintWriter p = new PrintWriter(new FileWriter("C:\\ausgabe.txt"));
BufferedReader b = new BufferedReader(new FileReader ("C:\\streams.txt"));
String xmlDateiName;
while ((xmlDateiName = b.readLine()) != null)
{
p.print(alles("<Pid>",xmlDateiName) + ", ");
p.print(alles("<Iso639LanguageCode>",xmlDateiName) + ", ");
p.print(alles(">252<",xmlDateiName) + ", ");
p.print(Zeilelesen.ZeileW(">252<",xmlDateiName) + ", ");
p.print(alles("<name>",xmlDateiName)+ ", ");
p.print(alles("<UtcTime>",xmlDateiName)+ LINE_SEPARATOR);
p.println();
p.flush();
p.close();
}
}
}