Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^3: Read the attribute from xml file

by Athanasius (Archbishop)
on Jul 20, 2015 at 14:50 UTC ( [id://1135452]=note: print w/replies, xml ) Need Help??


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

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,

Replies are listed 'Best First'.
Re^4: Read the attribute from xml file
by Anonymous Monk on Jul 21, 2015 at 00:14 UTC
    Hahaha with style :)
    while( my( $att, $attref ) = %{ $event->{attribute} }){ print "$att required " if $attref->{required}; }
      and typos, oh boy
      while( my( $att, $attref ) = each %{ $event->{attribute} }){ print "$att required " if $attref->{required}; }
Re^4: Read the attribute from xml file
by bhushanQA (Sexton) on Jul 21, 2015 at 09:42 UTC
    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 ??

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1135452]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (7)
As of 2024-04-19 20:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found