I have an xml file as below. In perl, I am trying to use use XML::Simple; utility
where PluginsName
should be the hash key and the rest of Plugin details should be values.
So, I want to fetch the below values : PluginsName
, PluginsStatus
, PluginspatchLogName
, PluginsLogFileName
and PluginsLogFileErrors
which is in tag PluginsLogFiles
.
Basically I want all information for a given PluginsName
<installer>
<Plugins>
<PluginsRunningSeq>1</PluginsRunningSeq>
<PluginspatchLogName>abc_patch.log</PluginspatchLogName>
<PluginsName>ConfigValue</PluginsName>
<PluginsAttemptNo>1</PluginsAttemptNo>
<PluginsStatus>Success</PluginsStatus>
<PluginsStartTime>2015-05-10 20:02:46.651 +0000</PluginsStartTime>
<PluginsEndTime>2015-05-10 20:03:14.002 +0000</PluginsEndTime>
<PluginsDuration>0 min, 27 sec, 351 millis</PluginsDuration>
<PluginsLogFiles>
<PluginsLogFileName>abc.log</PluginsLogFileName>
<PluginsLogFileLink>/tmp/abc.log</PluginsLogFileLink>
<PluginsLogFileErrors>No Errors</PluginsLogFileErrors>
</PluginsLogFiles>
<PluginsErrors>No Errors</PluginsErrors>
</Plugins>
<Plugins>
<PluginsRunningSeq>2</PluginsRunningSeq>
<PluginspatchLogName>abc_patch_patch.log</PluginspatchLogName>
<PluginsName>Patching Manager</PluginsName>
<PluginsAttemptNo>1</PluginsAttemptNo>
<PluginsStatus>Success</PluginsStatus>
<PluginsStartTime>2015-05-10 20:03:14.002 +0000</PluginsStartTime>
<PluginsEndTime>2015-05-10 20:03:16.573 +0000</PluginsEndTime>
<PluginsDuration>0 min, 2 sec, 571 millis</PluginsDuration>
<PluginsLogFiles>
<PluginsLogFileName>abc.log</PluginsLogFileName>
<PluginsLogFileLink>/tmp/abc.lo</PluginsLogFileLink>
<PluginsLogFileErrors>No Errors</PluginsLogFileErrors>
</PluginsLogFiles>
<PluginsLogFiles>
<PluginsLogFileName>abc.log</PluginsLogFileName>
<PluginsLogFileLink>/tmp/abc.log</PluginsLogFileLink>
<PluginsLogFileErrors>No Errors</PluginsLogFileErrors>
</PluginsLogFiles>
<PluginsLogFiles>
<PluginsLogFileName>abc.log</PluginsLogFileName>
<PluginsLogFileLink>/tmp/abc.log</PluginsLogFileLink>
<PluginsLogFileErrors>No Errors</PluginsLogFileErrors>
</PluginsLogFiles>
<PluginsErrors>No Errors</PluginsErrors>
</Plugins>
<Plugins>
<PluginsRunningSeq>3</PluginsRunningSeq>
<PluginspatchLogName>abc_patch.log</PluginspatchLogName>
<PluginsName>Download Patching</PluginsName>
<PluginsAttemptNo>1</PluginsAttemptNo>
<PluginsStatus>Success</PluginsStatus>
<PluginsStartTime>2015-05-10 20:03:18.863 +0000</PluginsStartTime>
<PluginsEndTime>2015-05-10 20:03:29.983 +0000</PluginsEndTime>
<PluginsDuration>0 min, 11 sec, 120 millis</PluginsDuration>
<PluginsLogFiles>
<PluginsLogFileName>abc.log</PluginsLogFileName>
<PluginsLogFileLink>/tmp/abc.log</PluginsLogFileLink>
<PluginsLogFileErrors>No Errors</PluginsLogFileErrors>
</PluginsLogFiles>
<PluginsLogFiles>
<PluginsLogFileName>abc.log</PluginsLogFileName>
<PluginsLogFileLink>/tmp/abc.log</PluginsLogFileLink>
<PluginsLogFileErrors>No Errors</PluginsLogFileErrors>
</PluginsLogFiles>
<PluginsErrors>No Errors</PluginsErrors>
</Plugins>
<Plugins>
<installerStartTime>2015-05-10 20:02:46.651 +0000</installerStartTime>
<installerEndTime>2015-05-10 21:37:47.428 +0000</installerEndTime>
</installer>
I was able to create an hash map based on PluginsName using the below code. But, I am unable to proceed further
my $pluginDetails = XMLin('/tmp/Installer.xml', KeyAttr => {Plugins => 'PluginsName'});
Could someone please help?