Thread XML::LibXML Webseite parsen (5 answers)
Opened by Willy at 2010-04-21 20:06

Gast Willy
 2010-04-21 20:06
#136349 #136349
Hallo, mir ist es gelungen mit XML::LibXML eine XHTML (heise.de) und eine HTML4 Seite (orf.at) zu parsen. Bei der xhtml-Seite ist es mir nur mit XPathContext gelungen und bei der html-Seite nur ohne XPathContext. Funktioniert das Parsen (mit XML::LibXML) von xhtml-Seiten nur mit der Angabe von namespaces und warum braucht es das bei html nicht?

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
#!/usr/bin/env perl
use warnings; use strict;
use 5.012;
use XML::LibXML;

my $parser = XML::LibXML->new;
$parser->recover_silently( 1 );
my $doc = $parser->parse_file( 'http://www.heise.de/' );

my $xc = XML::LibXML::XPathContext->new( $doc->getDocumentElement );
$xc->registerNs( 'xmlns', 'http://www.w3.org/1999/xhtml' );

my $nodes = $xc->findnodes( '//xmlns:h2/xmlns:a' );
for my $node ( $nodes->get_nodelist ) {
    say $_->getName, '=', $_->getValue for $node->attributes;
}

say "\n----------------------------------------\n";

$doc = $parser->parse_file( 'http://www.orf.at/' );

$nodes = $doc->findnodes( '//frame' );
for my $node ( $nodes->get_nodelist ) {
    say $_->getName, '=', $_->getValue for $node->attributes;
}

Last edited: 2010-04-21 20:08:09 +0200 (CEST)

View full thread XML::LibXML Webseite parsen