2010-12-16 4 views
2

perl 스크립트를 사용하여 XML 파일에서 여러 값을 읽는 방법은 무엇입니까? 내가 좋아하는 xml 파일이 있습니다perl 스크립트 - XML ​​파일에서 많은 값을 읽는 방법

<Provisioning> 
<Appliance> 
     <ID>1</ID> 
     <SiteID></SiteID> 
     <IPAddress>10.52.32.230</IPAddress> 
</Appliance> 
<Appliance> 
     <ID>1</ID> 
     <SiteID></SiteID> 
     <IPAddress>10.52.32.530</IPAddress> 
</Appliance> 
<Appliance> 
     <ID>1</ID> 
     <SiteID></SiteID> 
     <IPAddress>10.52.32.730</IPAddress> 
</Appliance>... 
</Provisioning> 

을 그리고 난 같은 코드를 작성했습니다 :

use XML::Simple; 
use Data::Dumper; 
my $xml = new XML::Simple; 
my $peermas = $xml->XMLin($masapplications); 
print "file contents: $peermas \n"; 
print Dumper($peermas); 
@masipaddr =+ $peermas->{Appliance}->{IPAddress};  #{Provisioning}->{Appliance}->{IPAddress}; 
print "The MAS ip: @masipaddr \n"; 

내가 스크립트를 펄 매우 새로운 오전 내 코드는 하나의 IP 주소가이 남아 있지 읽을 수 . 그래서이 경우 어떻게해야합니까 ?? 곧 회신 해주십시오 ... 미리 감사드립니다.

+0

일반적으로 선을 고통으로 이어질 것입니다. 자세한 내용은 '엄격 모드'에 대한이 기사를 참조하십시오. http://www.perlmonks.org/index.pl?node_id=218480 –

답변

1

$peermas에 필요한 모든 정보가 이미 있습니다. 해시 $peermas->{Appliance}의 배열에

my @massipaddr = map { $_->{IPAddress} } @{ $peermas->{Appliance} }; 

이지도의 반복 처리를하고 @massipaddr로에서 각하여 IPAddress를 밀어 : 당신이 필요하지만 만약 당신의 IP의 배열은 사용할 수 있습니다 해결. 아마도 이런

+0

안녕하세요 ... 고맙습니다. .. :) – SK1

0

뭔가 : 어떤 옵션을 지정하지 않고 XML :: 간단한 사용

#!/usr/bin/perl 

use strict; 
use warnings; 

use XML::Simple; 

my $xml = join '', <DATA>; 

my $peermas = XMLin($xml); 

foreach (@{$peermas->{Appliance}}) { 
    print $_->{IPAddress}. "\n"; 
} 

__DATA__ 
<Provisioning> 
<Appliance> 
     <ID>1</ID> 
     <SiteID></SiteID> 
     <IPAddress>10.52.32.230</IPAddress> 
</Appliance> 
<Appliance> 
     <ID>1</ID> 
     <SiteID></SiteID> 
     <IPAddress>10.52.32.530</IPAddress> 
</Appliance> 
<Appliance> 
     <ID>1</ID> 
     <SiteID></SiteID> 
     <IPAddress>10.52.32.730</IPAddress> 
</Appliance>... 
</Provisioning> 
관련 문제