Thread Passendes End Tag gesucht (15 answers)
Opened by J-jayz-Z at 2005-11-29 23:22

J-jayz-Z
 2005-11-29 23:22
#60574 #60574
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,
ich versuch mich gerade daran, ein passendes end tag aus HTML zu finden, es gelingt mir aber irgendwie nicht wirklich...
Um Hilfe würde ich mich freuen !
Hier mein Ansatz
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/perl
use strict;
use warnings;

my $html = "<div id='cont'>eins<div>zwei<div>drei<div>vier</div></div></div></div>";

content($html, "cont");

print "\n";

sub content {
my $html = shift;
my $name = shift;
$html =~ m/.*?\<(.*?).*?\s+(?:id|name)\s*=\s*['"]$name['"].*?\>(.*)\<\/\1\>.*?/s;
my $tag = $1;
my $content = $2;
my $i = 0;
my ($main, $counter);
$content =~ m/(.*?)\<\/$tag\>/s;
$main = $1;
if($main =~ m/.*?\<$tag.*?\>.*?/) {
$counter = () = $content =~ m/\<$tag.*?\>/g;
} else {
$counter = () = $main =~ m/\<$tag.*?\>/g;
}
my @end = split /\<\/$tag\>/, $content;
for(0..$#end) {
if($_ == $#end-1) {
$end[$_] = $end[$_]."</$tag>";
}
}
print $counter . " mal\n";
for(0..$counter) {
print $end[$_];
}
}

Allerdings ist hier mein Problem, das split das Element ja enfernt, und wenn ich das so schreibe, springt warnings an. Er kann nichts anhängen, wo es offiziell ja gar nichts gibt. Also wenn zwei mal hintereinander </$tag> da steht. das kommt leider recht häufig vor ... :(
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de

View full thread Passendes End Tag gesucht