Bu yüzden Amazon Web Services'dan döndürülen sonuçları ayrıştıracak bir perl yazdım. XML::Simple
paketini kullanıyorum. Çoğunlukla, bir eleman çıkardığımda her şey çalıştı. Ancak, karşılaştığım problem, bir elementin de bir özelliği olduğu zaman oldu. Sonra öğenin bir karma olduğunu bir hata alıyorum.Perl ile XML Elements & Attributes Ayrıştırma
DVD için Çalıştırma Süresini almak istediğimde yaptığım şey şu: Bu tek seferlik öğe için belirli bilgileri tutmak için bir öğe oluşturdum.
// XML
<ProductGroup>DVD</ProductGroup>
<RunningTime Units="minutes">90</RunningTime>
// Perl to parse XML
my $item = $xml->XMLin($content, KeyAttr => { Item => 'ASIN'}, ForceArray => ['ASIN']);
$ProductGroup = $item->{Items}->{Item}->{ItemAttributes}->{ProductGroup};
if(ref($item->{Items}->{Item}->{ItemAttributes}->{RunningTime}) eq 'HASH'){
$RunningTimeXML = $xml->XMLin($content, KeyAttr => { Item => 'ASIN'}, NoAttr => 1);
$RunningTime = $RunningTimeXML->{Items}->{Item}->{ItemAttributes}->{RunningTime};
}
Bir öğeye hem öğe hem de özniteliklere erişebilmemin bir yolu var mı?
$item = {
'RunningTime' => {'content' => '90', 'Units' => 'minutes'},
'ProductGroup' => 'DVD'
};
nedenle böyle çalışma süresini alabilirsiniz:
$RunningTime = $item->{RunningTime}->{content}