Am 15.10.2008, 20:47 Uhr, schrieb GS
<[EMAIL PROTECTED]>:
Warum benutzt hier eigendlich keiner XML::Parser zum Parsen vom osm
Dateien?
> Hi,
>
> ich habe:
>
> my ($v) = ($line =~ /^.+v=[\'\"]([\/-\w\d\s\.:,\(\)]+)[\'\"]/);
>
> Ich will aber einfach nur den Text zwischen den Anführungszeichen mit
> allem
> drum und dran. Probleme gibt es mit den dt. Umlauten.
>
> (.+) läuft nicht, warum?
>
> Tnx
>
> Gerhard
Beispielscript das alle Usernamen aus nodes und ways extrahiert:
-----------------------------------------------------------------
#!/usr/bin/perl
use XML::Parser;
my %Users = ();
sub StartHandler
{
my ( $expat, $tag, %attr ) = @_;
if( $tag eq 'node' or $tag eq 'way' )
{
$Users{ $attr{ 'user' } }++;
}
}
my $parser = new XML::Parser(Handlers => {Start => \&StartHandler });
$parser->parsefile( 'hamburg.osm', ErrorContext => 3 );
foreach my $user ( sort keys %Users )
{
print $user, ' - ', $Users{ $user } , "\n";
}
-----------------------------------------------------------------
So etwas kann auch xml parsen, wenn mal mehr als ein Tag in einer Zeile ist
Jacques
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de