author | wenzelm |
Sat, 20 Dec 2008 11:55:34 +0100 | |
changeset 29145 | b1c6f4563df7 |
parent 26593 | 8375332b3c96 |
permissions | -rw-r--r-- |
wenzelm@26575 | 1 |
# |
wenzelm@26575 | 2 |
# Author: Makarius |
wenzelm@26575 | 3 |
# |
wenzelm@26575 | 4 |
# yxml.pl - simple XML to YXML converter |
wenzelm@26575 | 5 |
# |
wenzelm@26575 | 6 |
|
wenzelm@26575 | 7 |
use strict; |
wenzelm@26575 | 8 |
use XML::Parser; |
wenzelm@26575 | 9 |
|
wenzelm@26575 | 10 |
binmode(STDOUT, ":utf8"); |
wenzelm@26575 | 11 |
|
wenzelm@26575 | 12 |
sub handle_start { |
wenzelm@26575 | 13 |
print chr(5), chr(6), $_[1]; |
wenzelm@26575 | 14 |
for (my $i = 2; $i <= $#_; $i++) { |
wenzelm@26575 | 15 |
print ($i % 2 == 0 ? chr(6) : "="); |
wenzelm@26575 | 16 |
print $_[$i]; |
wenzelm@26575 | 17 |
} |
wenzelm@26575 | 18 |
print chr(5); |
wenzelm@26575 | 19 |
} |
wenzelm@26575 | 20 |
|
wenzelm@26575 | 21 |
sub handle_end { |
wenzelm@26575 | 22 |
print chr(5), chr(6), chr(5); |
wenzelm@26575 | 23 |
} |
wenzelm@26575 | 24 |
|
wenzelm@26575 | 25 |
sub handle_char { |
wenzelm@26575 | 26 |
print $_[1]; |
wenzelm@26575 | 27 |
} |
wenzelm@26575 | 28 |
|
wenzelm@26575 | 29 |
my $parser = new XML::Parser(Handlers => |
wenzelm@26575 | 30 |
{Start => \&handle_start, |
wenzelm@26575 | 31 |
End => \&handle_end, |
wenzelm@26575 | 32 |
Char => \&handle_char}); |
wenzelm@26575 | 33 |
|
wenzelm@26593 | 34 |
$parser->parse(*STDIN) or die $!; |
wenzelm@26575 | 35 |