2017-03-09 1 views
0

ich Protokolle Textdatei besteht aus mehreren Tags wie folgt aus:Parse Textdatei-Tags als XML - Java

<log level="info" id="12144" ....> <msg> test msg </msg> </log> 

Ich möchte diese Datei analysieren, damit, dass ich dachte, da es wie XML aussieht, kann ich Fügen Sie der Datei die XML-Tags (<?xml version="1.0"?>) und einen Stammnamen (<file>) hinzu und parsen Sie sie anschließend mit dem DOM-Parser.

Aber derzeit habe ich ein Problem, Text am Anfang der Datei hinzuzufügen, da alle verfügbaren Optionen zu überschreiben sind, oder die ursprüngliche Datei an einen temporären Speicherort kopieren und dann den beabsichtigten Text hinzufügen, was nicht der Fall ist anwendbar für mich, da ich mit Dateien größer als 100 MB bin.

Haben Sie Vorschläge, den Text am Anfang hinzuzufügen oder die Textdatei zu analysieren und Elemente zu extrahieren?

THanks,

+0

Zeigen Sie Ihren Code. – VHS

Antwort

0

Sie können nicht nur erhalten, den Inhalt der Datei als String oder Stream oder was auch immer und dann Ihre Sachen an den Anfang hinzu? Danach können Sie noch das Dokument String/Stream was

+0

Dateien sind sehr groß, und um den Inhalt herauszugeben, um die Zeichenfolge hinzuzufügen, würde nicht in den Speicher passen ich denke, da ich an einem Webdienst arbeite, können wir mehrere Dateien in einem Moment verarbeiten. Deshalb habe ich diese Option aus meinen Lösungen ausgeschlossen. –

1

analysieren Wenn Sie das genaue Muster der Einträge kennen und wenn dieses Muster ist es relativ nicht dann ändert einfach die Einträge mit regulären Ausdrücken zu extrahieren, zB:

"<log *level=\"([^\"]*)\" *id=\"([^\"])\" *> ..." 
+0

Netter Vorschlag @ Maraca, ich werde es versuchen. –

+0

Ich bin sehr vorsichtig mit dem Vorschlag, weil normalerweise Regex nicht für xml/html geeignet sind und oft auf diese berühmte Antwort verwiesen: http://stackoverflow.com/a/1732454/4785110 – maraca