Hat sich erledigt. split war das Zauberwort.
Hallo zusammen,
mein heutiges Problem besteht darin, dass ich aus einer HTML-Datei Texte extrahieren muss. Die Datei sieht ungefähr so aus:
Ziel ist jetzt, alle Texte zwischen den <h2>-Tags zu extrahieren und in eine separate Datei zu schreiben. So weit, so trivial.HTML-Code:<h2>Dies ist eine einzeilige Überschrift</h2> <p>Dies ist ein mehrzeiliger Text</p> <h2>Dann kommt eine mehrzeilige Überschrift</h2> usw. usf.
Da ich von Perl so gut wie keine Ahnung habe, habe ich das Netz bemüht und jede Menge Tips gefunden, wie man einzeilige Strings verarbeiten kann. Also via "while (<FILEHANDLE>)" oder mit Hilfe eines "@Arrays". Da meine Quelldatei aber jede Menge mehrzeilige Überschriften beinhaltet, hilft mir das nicht weiter.
Ich bin also zu dem Schluss gekommen, dass ich die gesamte (zum Glück recht kleine) Textdatei in eine Variable packen und sie dann irgendwie durchsuchen muss.
Dieser Code verarbeitet zwar tatsächlich auch mehrzeilige Überschriften, liefert aber logischerweise nur den ersten Treffer.Code:if ( open(IN, "< $htmlInFile/$Datei") ){ $filedata = join('', <IN>) } close IN; if ($filedata =~ m/<h2>(.+?)<\/h2>/ism) { $temp = $1; $temp =~ s/\n/ /g; #Zeilenumbruch in der Überschrift entfernen soweit vorhanden trim ($temp); $result .= $temp."\n"; #Text speichern mit Zeilenumbruch am Ende } print LOG $result;
Die große Frage ist jetzt: Wie kann ich den Text in $filedata nach allen vorkommenden Überschriften durchsuchen?
Grüße
Wolfgang
Hat sich erledigt. split war das Zauberwort.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)