__END__ #!/usr/bin/perl -w use strict; use XML::Parser; die "usage: $0 opera.xbel\n" if !$ARGV[0]; my $parser = new XML::Parser(Handlers => { Start=>\&start, End=>\&end, Char=>\&char, }); my%equiv=(title=>'NAME', desc=>'DESCRIPTION'); my $flag = ''; $parser->parsefile($ARGV[0]); sub char { my ($p, $txt) = @_; return if $txt =~ /^\s*$/; chomp($txt); print $txt . "\n" if exists($equiv{$flag}); } sub start { my ($p, $e, %a) = @_; $flag = $e; if ($e eq 'folder'){ print "\n#FOLDER\n" } elsif ($e eq 'bookmark'){print "\n#URL\n\tURL=" . $a{'href'} if $a{'href'}} else {print "\n\t" . $equiv{$e} . "=" if exists $equiv{$e} } } sub end {undef $flag}