Sonstiges > Offtopic

HTml Datei in mehrere Dateien zerschneiden

(1/4) > >>

flaite:
Hi,

ich habe eine html-Datei, die zerteilt werden will.
Und zwar immer in der ersten leeren Zeile vor <a name=">

Es sind mehrere "<a name=" da.

Also werden damit dann verschiedene Dateien erzeugt.

Inhaltsverzeichnis
aName1
aName2
aName3
etc.

Ich krieg das mit Regular Expressions nicht hin und mache es mit Java (was ziemlich uncool ist, aber das beherrsche ich inzwischen wenigstens ganz gut).
Oder kennt vielleicht jemand ein Tool? Oder ein Python-Script. Ein Ruby-Script. Ein Groovy-Script. Ein Perl-Script oder was auch immer. 

thx Axel

m3:
Bitte schön:


--- Code: ---use strict;
use English;

my $filename = "";

if (not defined @ARGV ) {
print STDERR "Usage: " . $PROGRAM_NAME . " FILENAME\n";
exit;
}

open(IN, $ARGV[0] ) or die "Lesefehler '" . $ARGV[0] . "'! Grund: $!\n";
while(<IN>) {
if( /\<a\s+name\s*=\s*\"(.*?)\"\s*\>/i ) {
$filename = cleanup($1) . ".html";
if( $filename ne "") {
close(OUT);
}
print STDERR "Neuer Filename: $filename\n";
open(OUT, ">$filename") or die "Schreibfehler '$filename'! Grund: $!\n";
} else {
print OUT $_ if($filename ne "");
}
}
close(OUT) if($filename ne "");
close(IN);

sub cleanup {
my $text = shift @_;

$text =~ s/[\s,;]/_/gi;
$text =~ s/[:\\\/\"']/-/gi;

return($text);
}
--- Ende Code ---

flaite:
Danke. Das probiere ich mal aus.

flaite:
Sehr freundlich.
Das hat mir jetzt auf jeden Fall weitergeholfen.
Es scheint noch ein kleines Problem zu geben:
-> Der beginnt erst mit der ersten Zeile nach dem gefundenen <a\s+name\s*=\s*\"(.*?)\"\s*\>

Am Anfang eines Abschnittes wird aus:

--- Code: ---<h3 style='margin-left:0cm;text-indent:0cm'><a name="_Toc131827276">2.9.1<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp; </span>Buchungsjournale</a></h3> etc.

--- Ende Code ---
das hier:

--- Code: ---
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp; </span>Buchungsjournale</a></h3> etc.

--- Ende Code ---

Falls sich jemand dafür interessiert: Über Activestate.com ist Perl umsonst und sehr schnell auf Windowsrechnern installiert.

Gruß Axel

m3:
Jup, Activestate ist SEHR angenehm.

Axel, ich bau Dir das Script gerne um, Du musst nur bitte sagen, wie Du es gerne hättest.

1) Soll er den Text vor dem ersten "<a name...." auch speichern? Wenn ja, unter welchem Namen?

2) Was soll mit der Zeile passieren, in der sich das "<a name..." befindet? Soll sie mit ausgegeben werden (in welches File)? Soll der Text "<a name ...>....</a>" entfernt werden? Oder ganz was anderes?

Ist alles kein Problem, ich muss nur wissen, was Du gern hättest.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln