my $last_field_name; # cache to prevent repeated fields
+my $broken_cdata = XMLin('<foo><![CDATA[<bar>]]></foo>') eq '<bar>>';
+warn "XML::Simple on this system seems broken with <![CDATA[..]]>.\n" if ($broken_cdata);
+
sub data2xml {
use xmlify;
delete $x->{value};
delete $x->{delimiter};
$x->{content} = $v;
+ $d =~ s#>$## if ($d && $broken_cdata);
$x->{delimiter} = $d;
}
return $x;
$config=XMLin($import_xml_file, ForceArray => [ $tag, 'config', 'format' ], ForceContent => 1 );
# check for broken XML::Simple
- if ( XMLin('<foo><![CDATA[<bar>]]></foo>') eq '<bar>>' ) {
- warn "XML::Simple on this system seems broken with <![CDATA[..]]>.\n";
+ if ( $broken_cdata ) {
map {
$config->{format}->{$_}->{content} =~ s#>$##;
} keys %{ $config->{format} };