Thread [HTML::Parser] Überschriften parsen und als Liste darstellen - nur wie? (6 answers)
Opened by GwenDragon at 2023-12-20 16:08

Gustl
 2023-12-20 21:12
#195709 #195709
User since
2011-01-27
441 Artikel
BenutzerIn
[Homepage]
user image
Hallo, ich habe es mit regex gelöst. Vielleicht hilft es.

Code (perl): (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
37
38
39
40
#!/usr/bin/perl -w
                              
use strict;

my @result;
my $content = do { local $/ = undef; <DATA> };

$content =~ s/<\/h(\d)>/<\/h$1>\n/gi;

while ($content =~ /<h(\d)>(.*)<\/h\d>/gmi) {
    push( @result, "Level: ".$1.": ".$2);
}

foreach(@result){
  print $_."\n";
}

__DATA__

{{{%%TOC%%}}}

<h1>Test 1</H1> 

<p>Test</p>

<h2>Test 2</H2>

<p>Test 123</p>

<h2>Test 3</H2>

<p>Test</p>

<h1>Test 4</H1>

<p>Test</p> <h3>Test 5</H3> <h4>Test 6</H4>  

<h1>Test 7</H1>

<p>Test</p>


Ergebnis:
Code: (dl )
1
2
3
4
5
6
7
Level: 1: Test 1
Level: 2: Test 2
Level: 2: Test 3
Level: 1: Test 4
Level: 3: Test 5
Level: 4: Test 6
Level: 1: Test 7

View full thread [HTML::Parser] Überschriften parsen und als Liste darstellen - nur wie?