Hi rsriram,
You can do that using XML::Twig. Take a look at 'add_id' method in that. From XML::Twig documentation,
add_id Add an id to the element. The id is an attribute (id by default, see the id option for XML::Twig + new to change it. Use an id starting with # to get an id that's not +output by print, flush or sprint) that allows you to use the elt_id m +ethod to get the element easily. set_id_seed ($prefix) by default the id generated by add_id is twig_id_<nnnn>, set_id_seed c +hanges the prefix to $prefix and resets the number to 1
Here is one way to do it.
updated: added set_id_seed instead of regex. derby thanks :)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> </xml>'; my $twig = new XML::Twig( twig_handlers => { p => sub { $_->add_id() }, #insert element id }, pretty_print => 'indented' #print format ); $twig->set_id_seed( '' ); $twig->parse($string); $string = $twig->sprint; 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> </xml>
Prasad
In reply to Re: Renumbering ID values for XML tags
by prasadbabu
in thread Renumbering ID values for XML tags
by rsriram
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |