use XML::Rules;
my $parser = XML::Rules->new(
rules => [
item => sub { '
' . $_[1]->{_content} . ''},
list => sub {
for ($_[1]->{_content}) {
s/^\s+//;
s/\s+$//;
s{\s+}{}g;
}
"\nTX " . $_[1]->{_content} . "
\n"
},
para => sub { 'TX ' . $_[1]->{_content}},
head => sub { 'TX ' . $_[1]->{_content} . "
"},
'doc.body' => 'content',
]
);
use Data::Dumper;
my $result = $parser->parse($XML)->{'doc.body'};
for ($result) {
s/^\s+//;
s/\s+$//;
}
print $result;
__END__
C:\temp>c:\temp\reformatXML.pl
TX Introduction
TX para 1
TX para 2
TX Individual
TX para 1
TX para 2:
TX - item 1
- 2