Hello bhushanQA,
The XML you’ve shown is not valid, as the <Event> element has no closing tag. When that is added, reading the XML is fairly straightforward. I’m not sure exactly what you’re trying to do; this is my best guess:
#! perl use strict; use warnings; use XML::Simple; my $xml = do { local $/; <DATA>; }; my $xml_Event = XMLin($xml); for (keys %{ $xml_Event->{attribute} }) { printf "'%s' is %srequired\n", $_, $xml_Event->{attribute}{$_}{required} =~ /true/i ? '' : 'no +t '; } __DATA__ <Event name="Constants" id="0" ui-visible="0" version="0" serviceKey=" +0" rateTableName=""> <properties> <visible> false </visible> </properties> <attribute identifier="00"> <name> session_id </name> <type> string </type> <required> true </required> <ilog> <alternate> session id in string format </alternate> <visible> false </visible> </ilog> </attribute> <attribute identifier="01"> <name> volume </name> <type> int </type> <required> false </required> <ilog> <alternate> the volume </alternate> <visible> false </visible> </ilog> </attribute> </Event>
Output:
0:40 >perl 1313_SoPW.pl ' volume ' is not required ' session_id ' is required 0:40 >
But please note the following from the documentation for XML::Simple:
STATUS OF THIS MODULE
The use of this module in new code is discouraged. Other modules are available which provide more straightforward and consistent interfaces. In particular, XML::LibXML is highly recommended.
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re^3: Read the attribute from xml file
by Athanasius
in thread Read the attribute from xml file
by bhushanQA
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |