Hello Monks,
Sorry i made small mistake, pls check my code now.
Using xml twig, I am trying to supply two elements in a line with the separator tab.
Ex:
<c>
<dl>
ABC CDE
add eerwe
sdfsdfs erewrwe
</dl>
</c>
Expected Result:
<c>
<dl>
<first>ABC</first><second>CDE</second>
<first>add</first><second>eerwe</second>
<first>sdfsdfs</first><second>erewrwe</second>
</dl>
</c>
Obtained Result:
<c>
<dl>
<first>ABC</first><second>CDE</second>
<first>add</first><second>eerwe</second>
<first>sdfsdfs</first><second>erewrwe</second>rwe
</dl>
</c>
i.e. After </second> some characters are repeating, that character count is equivalent to line count. If i give five lines between dl and /dl , then five characters are repeating.
Can any one tell where am i going wrong?
Code Used:
my $t = new XML::Twig(
twig_handlers =>
{
"c"=>\&process_root
},
pretty_print =>'nice',
)->parsefile("$ARGV[0]");
my $say=$t->sprint;
print FOUT "$say";
sub process_root
{
my ($a,$b,$c)=@_;
my $bchild;
for $bchild ($b->children)
{
if ($bchild->tag eq 'dl')
{
$bchild=&dl($a,$bchild);
}
}
return $b;
}
sub dl
{
my ($a,$b,$c)=@_;
my $bchild;
for $bchild ($b->children)
{
if ($bchild->text)
{
$bchild->subs_text(
qr{(.+?)\t(.+?)\n},'&elt(first=>{},$1)&elt(second=>{},$2)');
}
return $b;
}
}
Thanks in advance, -Anonymous user- |