Для проверки ниже 1. xml
<root>
<setup name = "abc" version="1.1.1>
<func>
<comp name = "cba">
<check>type</check>
</comp>
</func>
</setup>
</root>
Я могу извлечь содержимое поля comp, используя следующую команду:
my $lib = "check1.xml";
my $simple = XML::Simple->new();
my $tree = $simple->XMLin($lib);
print $tree->{setup}->{func}->{comp}->{name} ;
С этим я могу напечатать " cba ". Я напечатал дерево $ с функцией Dumper, чтобы получить ха sh, и мне удалось создать синтаксис для печати того же самого.
Однако, когда у меня есть несколько теги comp, у меня проблемы.
<root>
<setup name = "abc" version="1.1.1">
<func>
<comp name = "cba">
<check>type</check>
</comp>
<comp name = "cdf">
<check>semi</check>
</comp>
<comp name = "mno">
<check>auto</check>
</comp>
<comp name = "xyz">
<check>manual</check>
</comp>
</func>
</setup>
</root>
Как мне получить значения здесь, например, когда я дам дамп га sh для этого, я не получаю тот же тег, что и я посмотрите любой элемент, к которому я могу получить доступ в ha sh, чтобы получить необходимую информацию.
$VAR1 = {
'setup' => {
'func' => {
'comp' => {
'cdf' => {
'check' => 'semi'
},
'mno' => {
'check' => 'auto'
},
'cba' => {
'check' => 'type'
},
'xyz' => {
'check' => 'manual'
}
}
},
'name' => 'abc',
'version' => '1.1.1'
}
};
Я хотел бы извлечь значения имени компа из вышеупомянутого ha sh в массив. Может кто-нибудь дать мне несколько советов здесь. то есть получить cdf, mno, xyz, cba ...