Привет всем,
Это очень просто для программистов на Perl, но не для начинающих, таких как я,
У меня есть один XML-файл, и я обработал с использованием XML :: Simple, как это
my $file="service.xml";
my $xml = new XML::Simple;
my $data = $xml->XMLin("$file", ForceArray => ['Service','SystemReaction',
'Customers', 'Suppliers','SW','HW'],);
Сбрасывая $data
, это выглядит так:
$data = {
'Service' => [{
'Suppliers' => [{
'SW' => [
{'Path' => '/work/service.xml', 'Service' => 'b7a'},
{'Path' => '/work/service1.xml', 'Service' => 'b7b'},
{'Path' => '/work/service2.xml', 'Service' => 'b5'}]}
],
'Id' => 'SKRM',
'Customers' =>
[{'SW' => [{'Path' => '/work/service.xml', 'Service' => 'ASOC'}]}],
'Des' => 'Control the current through the pipe',
'Name' => ' Control unit'
},
{
'Suppliers' => [{
'HW' => [{
'Type' => 'W',
'Path' => '/work/hardware.xml',
'Nr' => '18',
'Service' => '1'
},
{
'Type' => 'B',
'Path' => '/work/hardware.xml',
'Nr' => '7',
'Service' => '1'
},
{
'Type' => 'k',
'Path' => '/work/hardware.xml',
'Nr' => '1',
'Service' => '1'
}]}
],
'Id' => 'ADTM',
'Customers' =>
[{'SW' => [{'Path' => '/work/service.xml', 'Service' => 'SDCR'}]}],
'Des' => 'It delivers actual motor speed',
'Name' => ' Motor Drivers and Diognostics'
},
# etc.
],
'Systemreaction' => [
# etc.
],
};
Как получить доступ к каждому элементу сервиса и systemReaction (не предусмотрено). потому что я использую "$ data" в дальнейшей обработке. Поэтому мне нужно получить доступ к каждому идентификатору, клиентам, поставщикам и ценностям в каждой услуге. Как получить конкретное значение из службы, чтобы выполнить какой-то процесс с этим значением. Например, мне нужно получить все значения Id из службы и создать узлы для каждого значения id.
Чтобы получить значение типа и Nr, я пытался так
foreach my $service (@{ $data->{Service}[1]{Suppliers}[0]{HW}[0] }) {
say $service->{Nr};
}
foreach my $service (@{ $data->{Service}[1]{Suppliers}[0]{HW}[0] }) {
say $service->{Type};
}
Можете ли вы помочь мне, как получить все значения Nr и Type от поставщика-> HW.