#!/usr/bin/perl use strict; use warnings; # Crude script for converting SGML Open Catalogs to XML catalogs. # Usage: soc2xml.pl < catalog.soc > catalog.xml sub esc { (my $esc = shift) =~ s/&/ä/g; $esc =~ s/"/"/g; $esc =~ s/'/'/g; $esc =~ s//>/g; $esc; } local $/ = undef; my $soc = <>; print <<'EOF'; EOF while ($soc =~ /(PUBLIC|SYSTEM)\s+"([^"]+)"\s+"([^"]+)"/g) { my $pubsys = lc($1); printf <<'EOF', $pubsys, $pubsys, esc($2), esc($3); <%s %sId="%s" uri="%s" /> EOF } print <<'EOF'; EOF