Sonstiges > Offtopic

HTml Datei in mehrere Dateien zerschneiden

<< < (2/4) > >>

flaite:
Er nimmt den Inhalt des Textes von dem Attribute name in a als Dateinamen (sehr gut).
Gut wäre es, wenn er die ganze Zeile, in der er das <a name gefunden hat in die Datei schreiben würde. Eigentlich sämtliche Zeichen nach der letzten leeren Zeile vor dem <a name=. (hoffe das ist verständlich).
Sonst hilft mir das aber wirklich schon so weiter hier eine schnelle Lösung zu entwickeln.

... wobei ich zunehmend dazu tendiere, dieses ganze (Verfahren zur Generierung von Dokumentation) auf DocBook Basis nochmal neu starte. Das läuft dann aber ausserhalb des Budgets hier.

Gruß Axel

m3:
Soda, jetzt wird die Zeile mit dem "<a name ..." auch ins File geschrieben:


--- 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";
}
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:
Das funkioniert sehr gut. Thx.
Hab 2 Dinge gelernt:
1. Will man eine online html-Hilfe (hier für 2 Portlets) erstellen, ist der Weg über Word 2003 als Html Editor und PerlScripte (oder ähnliche regex-fähige Skriptsprachen) auf jeden Fall machbar.
2. Ich muß unbedingt eine regex-fähige Skriptsprache lernen (und es wird nicht Perl sein).

Versuch jetzt mehr aus Interesse, ob für die Aufgabe -> komfortable Erstellung von html artiger Dokumentationsseiten <- nicht vielleicht noch besser mit DocBook-XML und xslt gelöst werden kann.
Poste, wenn ich dazu was sinnvolles zu sagen habe.

flaite:
Hallo Martin,

hab noch eine Frage:
Kann ich in das Perl Script irgendwie einbauen, dass "Word-Typische"-Tags entfernt werden.

Hier ist die Regex:

Title:     Pattern Title      [Details] [Test]
Expression:    
(?s)( class=\w+(?=([^<]*>)))|(<!--\[if.*?<!\[endif\]-->)|(<!\[if !\w+\]>)|(<!\[endif\]>)|(<o:p>[^<]*</o:p>)|(<span[^>]*>)|(</span>)|(font-family:[^>]*[;'])|(font-size:[^>]*[;'])(?-s)
 
Description:    Word HTML cleanup code. Use this expression to get rid of most of the stuff that Word adds to an HTML document such as: lots of span elements, font-family and font-size style attributes, class attributes, a whole bunch of if-then statements. Use this expression in a regex.replace(originalHtml, regExpr, "").
Matches:    <span>
Non-Matches:    <table>
 
Author:    Peter Donker

(von http://regexlib.com/DisplayPatterns.aspx?cattabindex=7&categoryId=8)

Gruß Axel

m3:
Hallo Axel,

ja klatr, sollte kein Problem sein. Ich schau es mir im Laufe des Tages an. Hast Du ev. ein Testdokument bei der Hand?

Ich persönlich würde ja eher tidy oder den demoroniser drüber laufen lassen.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln