I've been scouring the internet for 2 days now trying to find answers to how to proper reference a multi-level XML file using Perl XML Parsers. I'm a novice Perl guy and this is my first post to this forum, so I have much to learn. I'm starting with XML::Simple. I realize that some have preferences for other libraries.
XML Sample file:
<events> <event> <EventObject>Application</EventObject> <EventType>Start</EventType> <Operation></Operation> <EventTimestamp>Sat 11/21/2015-14:02:57.76</EventTimestamp> </event> <source> <UserIPAddr>192.168.1.2</UserIPAddr> <UserHostName>ABC-PROD-BAR-15-01A</UserHostName> <UserUUID>EC2-User</UserUUID> </source> <target> <URL>"https://foo.com/"</URL> </target> <payload> <FormData></FormData> <PackageFilename></PackageFilename> </payload> <event> <EventObject>User</EventObject> <EventType>Download</EventType> <Operation>Acknowledge License</Operation> <EventTimestamp>Sat 11/21/2015-14:03:10.44</EventTimestamp> </event> <source> <UserIPAddr>10.120.30.4</UserIPAddr> <UserHostName>WSM24CN502</UserHostName> <UserUUID>simpson homer 750329 </UserUUID> </source> <target> <URL>"https://dev.catalog.com/"</URL> </target> <payload> <FormData></FormData> <PackageFilename>"eclipse.luna.5.2.tag.gz"</PackageFilename> </payload> </events> Sample Code:
#!perl # use module use XML::Simple; use Data::Dumper; use XML::Parser; # create object $xml = new XML::Simple (KeyAttr=>[]); # read XML file my $data = $xml->XMLin("auditfile3.xml",forcearray=>1); #$data = $xml->XMLin("auditfile3.xml",KeyAttr=>{EventRecord=>'Event'}); print Dumper($data); #print $data->{Events}->{Event}; #my $EventRecord = $data->{EventRecord}; #print Dumper($EventRecord); #print $EventRecord->{EventObject}; #print $data->{EventObject}; # dereference hash ref # access <EventRecord> array foreach my $e (@{$data->{Event}}) { print "EventObject: ",$e->{Event->{EventObject}}, "\n"; print "EventType: ", $e->{EventType}, "\n"; print "Operation: ", $e->{Operation}, "\n"; print "Timestamp: ", $e->{EventTimestamp}, "\n"; }
No comments:
Post a Comment