in reply to Re: Renumbering ID values for XML tags
in thread Renumbering ID values for XML tags

Thank you for your reply Prasad, I was quite successful in inserting id to the XML file using the XML::Twig. But I do not want the XML to be parsed. My XML file may not be structured. The code I have with me...

#use strict;
use XML::Twig;
my $string = '<xml><p>This is a string</p><p>This is a string</p><p>This is a string</p></xml>';
my $twig = new XML::Twig(
        twig_handlers => {
           p => sub { $_->add_id() },
},
         pretty_print => 'indented' #print format
);
$twig->set_id_seed( '' );
$twig->parse($string);
$string = $twig->sprint;
print $string;

Sriram

Replies are listed 'Best First'.
Re^3: Renumbering ID values for XML tags
by prasadbabu (Prior) on Jun 23, 2006 at 14:03 UTC

    Hi rsriram,

    I think if your XML file is not well-formed you cannot process your file with XML::Twig. Instead you can do using regex. Before that you have to select the required <p> for processing id.

    After selecting required paragraphs <p>, you can do something like this.

    use strict; use XML::Twig; my $string = '<xml> <p>here the paragraph comes</p> <p>here the paragraph comes</p> <p>here the paragraph comes</p> <p>here the paragraph comes</p> </xml>'; my $i =1; $string =~ s/<p>/'<p id="'.$i++.'">'/egs; print $string; output: ------- <xml> <p id="1">here the paragraph comes</p> <p id="2">here the paragraph comes</p> <p id="3">here the paragraph comes</p> <p id="4">here the paragraph comes</p> </xml>

    Prasad