one<two
one&two
two>one
Caisse D"Eparge
Caisse D'Eparge
####
one<two
one&two
two>one
Caisse D"Eparge
Caisse D'Eparge
####
use strict;
use warnings;
use Cwd;
use XML::Writer;
use XML::Writer::String;
use HTML::Entities;
use utf8;
use Modern::Perl;
my $str1 = qq(oneone); # > (>)
my $str4 = qq(Caisse D"Eparge); # " (");
my $str5 = qq(Caisse D'Eparge); # ' (');
$str4 =~ s/\x{22}/\#\#\#doublequote\#\#\#/g;
$str5 =~ s/\x{27}/\#\#\#apostrophe\#\#\#/g;
say "str4: $str4";
say "str5: $str5";
my $file = cwd() . '/test.xml';
my $BOD = XML::Writer::String->new();
my $Writer = XML::Writer->new(
OUTPUT => $BOD,
DATA_MODE => 1,
DATA_INDENT => 2
);
$Writer->xmlDecl("UTF-8");
$Writer->startTag('root');
$Writer->dataElement('str1', $str1);
$Writer->dataElement('str2', $str2);
$Writer->dataElement('str3', $str3);
$Writer->dataElement('str4', $str4);
$Writer->dataElement('str5', $str5);
$Writer->endTag('root');
$Writer->end();
my $xml = $BOD->value();
$xml =~ s/\#\#\#doublequote\#\#\#/\"\;/g;
$xml =~ s/\#\#\#apostrophe\#\#\#/\&apos\;/g;
my $fh = new IO::File "> $file";
if (defined $fh) {
print $fh "$xml";
$fh->close;
}
exit;