lib/scripts/yxml.pl
author wenzelm
Sat, 20 Dec 2008 11:55:34 +0100
changeset 29145 b1c6f4563df7
parent 26593 8375332b3c96
permissions -rw-r--r--
removed Ids;
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