Hello,
I'm currently going mad with a german UMLAUT Problem and XML:Twig.
Here's the code:
use strict;
use warnings;
use XML::Twig::XPath;
$/ = undef;
my $data = <DATA>;
my $twig=XML::Twig::XPath->new(pretty_print => 'nice',
keep_encoding=>1,
twig_handlers => {
'add' => \&_check
+Add,
}
);
$twig->parse($data); # build ito
my $out = $twig->sprint;
print $out;
sub _checkAdd
{
my( $t, $addAttr)= @_;
my $elt;
$addAttr->set_tag('check');
$elt= parse XML::Twig::Elt( qq(<p>test</p>) );
$elt->paste('last_child',$addAttr);
}
__DATA__
<?xml version="1.0" encoding="ISO-8859-1"?>
<doc><url><irl>with Ü here</irl></url><add></add></doc>
I like to get this output:
<?xml version="1.0" encoding="ISO-8859-1"?>
<doc>
<url>
<irl>with Ü here</irl>
</url>
<check>
<p>test</p>
</check>
</doc>
but I get:
<?xml version="1.0" encoding="ISO-8859-1"?>
<doc>
<url>
<irl>with &#xDC; here</irl>
</url>
<check>
<p>test</p>
</check>
</doc>
When there is no <add> Tag in the xml (which is going to be modified in the subfunction), the output is ok. So there might be a problem only if twig goes into that subfunction!?
Any help is very welcome.
Thanks
Christian
-----------------------------------
--the good, the bad and the physi--
-----------------------------------