Hallöchen,
ich bin mal wieder auf ein Problemchen bei meiner Arbeit getroffen das sich leider etwas schwieriger lösen lässt ( befürchte ich ).
Kurze Beschreibung : Ich lese Dateien ein mit einem BufferedReader ( mehrere 100 MB ). Splitte ( mit regex ) die Zeilen in mehrere Einzelsegmente um diese auswerten zu können. Nach dem splitten werden die Ergebnisse in listen eingepackt, zur späteren Verarbeitung.
Um in diesen Zeilen etwas zu finden verwende ich einen matcher, was auch wunderbar funktioniert. Leerzeilen filtere ich mit einem Iterator heraus.
Und nun zu dem Problem, inmitten dieser Dateien tauchen urplötzlich komplette xml Dokumente auf, diese erstrecken sich über mehrere Zeilen. Die erste Zeile beginnt ja mit " <?XML.... ". Diese herauszufiltern ist kein Problem, aber ich möchte alles was zu diesem XML Dokument gehört nicht haben. Ich hatte gehofft das man dem Matcher irgendwie verschiedene Anweisungen mitgeben kann, habe aber dazu leider nichts gefunden. Denn das nächste Problem ist das die Suchbegriffe die ich haben möchte ( also die Zeilen in denen diese vorkommen ) auch in dem XML Dokument vorkommen können, was dann inmitten des Dokumentes für den Matcher ja einen "Treffer" bedeuten würde.
Optimal wäre wenn man dem Reader etwas mitgeben könnte bei dessen auftauchen er das einlesen stoppt und erst beim auftauchen der 2ten Zeichenfolge weiter einliest ( z.B. Stopp bei <?XML Weiter ab ENDE Dokument ).
Ich hoffe das ihr mir da weiterhelfen könnt.
Grüße Breas
ich bin mal wieder auf ein Problemchen bei meiner Arbeit getroffen das sich leider etwas schwieriger lösen lässt ( befürchte ich ).
Kurze Beschreibung : Ich lese Dateien ein mit einem BufferedReader ( mehrere 100 MB ). Splitte ( mit regex ) die Zeilen in mehrere Einzelsegmente um diese auswerten zu können. Nach dem splitten werden die Ergebnisse in listen eingepackt, zur späteren Verarbeitung.
Um in diesen Zeilen etwas zu finden verwende ich einen matcher, was auch wunderbar funktioniert. Leerzeilen filtere ich mit einem Iterator heraus.
Und nun zu dem Problem, inmitten dieser Dateien tauchen urplötzlich komplette xml Dokumente auf, diese erstrecken sich über mehrere Zeilen. Die erste Zeile beginnt ja mit " <?XML.... ". Diese herauszufiltern ist kein Problem, aber ich möchte alles was zu diesem XML Dokument gehört nicht haben. Ich hatte gehofft das man dem Matcher irgendwie verschiedene Anweisungen mitgeben kann, habe aber dazu leider nichts gefunden. Denn das nächste Problem ist das die Suchbegriffe die ich haben möchte ( also die Zeilen in denen diese vorkommen ) auch in dem XML Dokument vorkommen können, was dann inmitten des Dokumentes für den Matcher ja einen "Treffer" bedeuten würde.
Optimal wäre wenn man dem Reader etwas mitgeben könnte bei dessen auftauchen er das einlesen stoppt und erst beim auftauchen der 2ten Zeichenfolge weiter einliest ( z.B. Stopp bei <?XML Weiter ab ENDE Dokument ).
Ich hoffe das ihr mir da weiterhelfen könnt.
Grüße Breas