in reply to Re^3: Read the attribute from xml file
in thread Read the attribute from xml file

Hi.. I have written my own code, right now I am able to print the whole file:
#!/usr/bin/perl use strict; use warnings; use XML::Simple; use Data::Dumper ; my $xml_Event = XMLin('EventDescription.xml', KeyAttr =>{Event => 'nam +e'}); my $Event = $xml_Event->{Event}; print Dumper($Event);
Now I want to print name and required field, How will I do that ?? all content stored in variable.

Replies are listed 'Best First'.
Re^5: Read the attribute from xml file
by Anonymous Monk on Jul 21, 2015 at 10:31 UTC
    'use of this module in new code is discouraged'. Did you read the docs? Dumping the file you read isn't what you want.
Re^5: Read the attribute from xml file
by GotToBTru (Prior) on Jul 21, 2015 at 12:56 UTC

    I'm not here to write programs for you. Check out this for help in working with references.

    $VAR1 = { 'name' => 'Constants', 'attribute' => [ { 'identifier' => '00', 'required' => ' true ', 'name' => ' session_id ', 'type' => ' string ', 'ilog' => { 'visible' => ' false ', 'alternate' => ' session id in st +ring format ' } }, { 'identifier' => '01', 'required' => ' false ', 'type' => ' int ', 'name' => ' volume ', 'ilog' => { 'alternate' => ' the volume ', 'visible' => ' false ' } } ], 'properties' => { 'visible' => ' false ' }, 'serviceKey' => '0', 'version' => '0', 'ui-visible' => '0', 'id' => '0', 'rateTableName' => '' };

    In your program, $Event is a hash reference. The data you want is under the attribute key. So you'd start with $Event->{attribute}. That is an array ref. Each element of that array is ANOTHER hash ref. 'name' and 'required' are keys in that hash.

    What I usually do in this situation is run the program in the debugger. Then I can incrementally build the expression that gets to the data I need.

    If you're thinking 'wow, this is alot of work', well yeah it is. That's why you should invest the time to learn a real XML module instead of XML::Simple.

    Dum Spiro Spero