Анализ XML-элементов и атрибутов с помощью Perl
-
09-06-2019 - |
Вопрос
Поэтому я написал Perl, который анализировал результаты, возвращаемые из Веб-сервисы Amazon.я использую XML::Simple
упаковка.По большей части все работало, когда я вытаскивал элемент.Однако проблема, с которой я столкнулся, заключалась в том, что у элемента также был атрибут.Затем я получаю сообщение об ошибке, что элемент является хешем.
Вот что я сделал, если хотел получить время работы DVD:Я только что создал элемент для хранения конкретной информации об этом одноразовом элементе.
// 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};
}
Есть ли способ получить доступ как к элементам, так и к атрибутам одного элемента?
Решение
$item
это хэш-ссылка, которая выглядит следующим образом:
$item = {
'RunningTime' => {'content' => '90', 'Units' => 'minutes'},
'ProductGroup' => 'DVD'
};
Поэтому вы можете получить время работы следующим образом:
$RunningTime = $item->{RunningTime}->{content}
Не связан с StackOverflow