I am trying to parse some values from a XML string that I have imported through SOAP:Lite. I am not proficient in perl and I couldn't solve this by googling nor by reading related issues here.
The XML I am trying to parse is this:
<COMPUTER>
<ACCOUNTINFO>
<ENTRY Name="fields_12"></ENTRY>
<ENTRY Name="fields_24"></ENTRY>
<ENTRY Name="TAG">Arias 4431</ENTRY>
<ENTRY Name="fields_23"></ENTRY>
<ENTRY Name="fields_16"></ENTRY>
<ENTRY Name="fields_11"></ENTRY>
<ENTRY Name="fields_6"></ENTRY>
<ENTRY Name="fields_22"></ENTRY>
<ENTRY Name="fields_20"></ENTRY>
<ENTRY Name="fields_21"></ENTRY>
<ENTRY Name="fields_17"></ENTRY>
<ENTRY Name="fields_3">Vigilancia</ENTRY>
<ENTRY Name="fields_14"></ENTRY>
<ENTRY Name="fields_9"></ENTRY>
<ENTRY Name="fields_8"></ENTRY>
<ENTRY Name="fields_19"></ENTRY>
<ENTRY Name="fields_10"></ENTRY>
<ENTRY Name="fields_28"></ENTRY>
<ENTRY Name="fields_26"></ENTRY>
<ENTRY Name="fields_15"></ENTRY>
<ENTRY Name="fields_5"></ENTRY>
<ENTRY Name="fields_27"></ENTRY>
<ENTRY Name="fields_7"></ENTRY>
<ENTRY Name="fields_25"></ENTRY>
<ENTRY Name="fields_13"></ENTRY>
<ENTRY Name="fields_18"></ENTRY>
<ENTRY Name="fields_4">Vigilancia</ENTRY>
</ACCOUNTINFO>
<DICO_SOFT>
<WORD>Freeware</WORD>
<WORD>AXIS Video</WORD>
<WORD>Java</WORD>
<WORD>Drivers & OEM software</WORD>
<WORD>Actualizaciones de Microsoft</WORD>
<WORD>MS Operating Systems</WORD>
</DICO_SOFT>
<HARDWARE>
<CHECKSUM>131071</CHECKSUM>
<DEFAULTGATEWAY></DEFAULTGATEWAY>
<DESCRIPTION></DESCRIPTION>
<DNS></DNS>
<FIDELITY>9214</FIDELITY>
<ID>453</ID>
<IPADDR>10.30.8.214</IPADDR>
<IPSRC>10.30.8.214</IPSRC>
<LASTCOME>2013-12-27 12:47:42</LASTCOME>
<LASTDATE>2013-12-27 12:47:42</LASTDATE>
<MEMORY>2048</MEMORY>
<NAME>EC214001</NAME>
<OSCOMMENTS>Service Pack 1</OSCOMMENTS>
<OSNAME>Microsoft Windows 7 Professional</OSNAME>
<OSVERSION>6.1.7601</OSVERSION>
<PROCESSORN>1</PROCESSORN>
<PROCESSORS>2399</PROCESSORS>
<PROCESSORT>Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHz [2 core(s) x64]</PROCESSORT>
<QUALITY>0.0716</QUALITY>
<SSTATE>0</SSTATE>
<SWAP>3868</SWAP>
<TYPE>0</TYPE>
<USERAGENT>OCS-NG_WINDOWS_AGENT_v2.0.5.0</USERAGENT>
<USERDOMAIN></USERDOMAIN>
<USERID>vigilancia</USERID>
<WINCOMPANY></WINCOMPANY>
<WINOWNER>vigilancia</WINOWNER>
<WINPRODID>55041-033-4366171-86806</WINPRODID>
<WINPRODKEY>BBBBB-BBBBB-BBBBB-BBBBB-BBBBB</WINPRODKEY>
<WORKGROUP>MASSONE</WORKGROUP>
</HARDWARE>
</COMPUTER>
I need to get several values from this for manipulation. For example, ENTRY Name="fields_3, ID, IPADDR and NAME.
I have tried with several modules, such as XML::Simple, XML:Parser etc. The data is contained in a string $refx.
I have tried (between other things):
use XML::Simple;
my $newid = XMLin($refx);
$tes = $newid{'ID'};
print $tes;
But it does not work.
Thanks in advance
$newidwithData::Dumper. Your ID-element could be on a deeper level of the hashref. Also ALWAYS enable strictures and warnings in your scripts (use strict; use warnings;).