lib/scripts/yxml
author wenzelm
Thu May 20 20:20:52 2010 +0200 (2010-05-20)
changeset 37012 106c56e916f8
parent 35022 c844b93dd147
permissions -rwxr-xr-x
enable shell script editor mode;
wenzelm@35022
     1
#!/usr/bin/env perl
wenzelm@26575
     2
#
wenzelm@26575
     3
# Author: Makarius
wenzelm@26575
     4
#
wenzelm@26575
     5
# yxml.pl - simple XML to YXML converter
wenzelm@26575
     6
#
wenzelm@26575
     7
wenzelm@35022
     8
use warnings;
wenzelm@26575
     9
use strict;
wenzelm@35022
    10
wenzelm@26575
    11
use XML::Parser;
wenzelm@26575
    12
wenzelm@26575
    13
binmode(STDOUT, ":utf8");
wenzelm@26575
    14
wenzelm@26575
    15
sub handle_start {
wenzelm@26575
    16
  print chr(5), chr(6), $_[1];
wenzelm@26575
    17
  for (my $i = 2; $i <= $#_; $i++) {
wenzelm@26575
    18
    print ($i % 2 == 0 ? chr(6) : "=");
wenzelm@26575
    19
    print $_[$i];
wenzelm@26575
    20
  }
wenzelm@26575
    21
  print chr(5);
wenzelm@26575
    22
}
wenzelm@26575
    23
wenzelm@26575
    24
sub handle_end {
wenzelm@26575
    25
  print chr(5), chr(6), chr(5);
wenzelm@26575
    26
}
wenzelm@26575
    27
wenzelm@26575
    28
sub handle_char {
wenzelm@26575
    29
  print $_[1];
wenzelm@26575
    30
}
wenzelm@26575
    31
wenzelm@26575
    32
my $parser = new XML::Parser(Handlers =>
wenzelm@26575
    33
  {Start => \&handle_start,
wenzelm@26575
    34
    End => \&handle_end,
wenzelm@26575
    35
    Char => \&handle_char});
wenzelm@26575
    36
wenzelm@26593
    37
$parser->parse(*STDIN) or die $!;