В общем, я прочитал много других сообщений и не смог разобраться в этом. Я извлекаю данные из веб-службы, и мне возвращается следующий XML:
$VAR1 = {
'error' => 'EndOfResults',
'model-responses' => {
'model' => [
{
'attribute' => {
'content' => 'wltvbswfc02',
'id' => '0x1006e'
},
'mh' => '0x100540'
},
{
'attribute' => {
'content' => 'wltvsutm1ds02',
'id' => '0x1006e'
},
'mh' => '0x100c80'
},
{
'attribute' => {
'content' => 'wltvsdora03',
'id' => '0x1006e'
},
'mh' => '0x100c49'
},
]
},
'throttle' => '86',
'total-models' => '86',
'xmlns' => 'http://www.ca.com/spectrum/restful/schema/response'
};
Мне нужно вытащить «mh» и «content» и назначить хэш с содержимым в качестве ключа и mh в качестве значения. Мне не удалось получить правильную структуру данных .. Я признателен за любую помощь. Спасибо! Роберт
1 ответ
Вы уже преобразовали XML в структуру данных Perl, поэтому
use 5.010;
use warnings;
use Data::Dumper;
my $href = {
"error" => "EndOfResults",
"model-responses" => {
model => [
{ attribute => { content => "wltvbswfc02", id => "0x1006e" },
mh => "0x100540",
},
{ attribute => { content => "wltvsutm1ds02", id => "0x1006e" },
mh => "0x100c80",
},
{ attribute => { content => "wltvsdora03", id => "0x1006e" },
mh => "0x100c49",
},
],
},
"throttle" => 86,
"total-models" => 86,
"xmlns" => "http://www.ca.com/spectrum/restful/schema/response",
};
my %res = map { $_->{attribute}{content} => $_->{mh} }
@{ $href->{"model-responses"}{model} };
say Dumper \%res;
Вышеуказанные отпечатки:
$VAR1 = {
'wltvsutm1ds02' => '0x100c80',
'wltvsdora03' => '0x100c49',
'wltvbswfc02' => '0x100540'
};
Похожие вопросы
Связанные вопросы
Новые вопросы
xml
XML (Extensible Markup Language) - это формат структурированного документа, определяющий правила кодирования текста. При использовании этого тега включайте дополнительные теги, такие как язык программирования, наборы инструментов, используемые технологии XML и другие теги, описывающие среду, в которой опубликована проблема. Гибкость XML обеспечивает широкий спектр применений для передачи человеческих и машинных данных, в том числе конкретных инструментов и библиотек.
XML::Simple
для собственное предложение модуля. Вместо этого, чтобы избежать проблемы XY, вставьте фактический код XML в свой вопрос вместо проанализированной структуры данных, чтобы открыть для себя гораздо лучшие ответы.