Hi Rob,
Thanks for your support.The code does exactly what I want .................
Can you please suggest me a tutorials with good examples on XML::Twig.

Another thing can you please explain me this line in the code my($twig,
$bsc)= @_;

Best Regards
Anirban Adhikary.

On Mon, Mar 19, 2012 at 7:41 PM, Rob Dixon <rob.di...@gmx.com> wrote:

> On 19/03/2012 13:10, Anirban Adhikary wrote:
>
>> Hi List,
>> I have a XML file which looks like as follows
>>
>> <ISProducts>
>> <StoreInfo>
>>    <BSC id="AMIBRB1">
>>       <ALPHA>10</ALPHA>
>>       <AMRCSFR3MODE>1,3,4,7</**AMRCSFR3MODE>
>>       <AMRCSFR3THR>12,16,21</**AMRCSFR3THR>
>>       <AMRCSFR3HYST>2,3,3</**AMRCSFR3HYST>
>>       <AMRCSFR4MODE>1,3,6,8</**AMRCSFR4MODE>
>>       <AMRCSFR4THR>12,17,25</**AMRCSFR4THR>
>>       <PAGBUNDLE>50</PAGBUNDLE>
>>       <USERDATA>AMI_BRANLY_B_1</**USERDATA>
>>     </BSC>
>> .........................
>> .............................
>>
>> Now my question is how to extract the value of id in a variable using
>> XML::Twig.
>> Since the xml file is quite large I like to print the value of id using a
>> loop.
>>
>
> XML::Twig uses callbacks to process pieces of the XML that you have
> defined. In this case you are interested only in the <BSC> start tag so
> you can define a "start tag handler". Using $twig->purge empties the
> data read so far. If you use this once you have accessed all the
> information you need from a given element there is no need to store the
> entire XML data in memory.
>
> The program below doeas what I think you want.
>
> HTH,
>
> Rob
>
>
> use strict;
> use warnings;
>
> use XML::Twig;
>
> my $twig = XML::Twig->new(start_tag_**handlers => {
>    BSC => \&on_BSC
> });
>
> sub on_BSC {
>  my($twig, $bsc)= @_;
>  print $bsc->id, "\n";
>  $twig->purge;
> }
>
> $twig->parsefile('ISProducts.**xml');
>
>
>
>

Reply via email to