Я должен заменить использование XML :: Simple на XML :: Twig в моем существующем коде.
Файл, который он читает:
<instance name="instance_1">
<remediation type="scan_src_ip" name="scan_src_ip">
<config>
<string name="action">Scan</string>
</config>
</remediation>
</instance>
Старый Perl-код с XML :: Simple:
my $config_xml = XMLin( $CONFIG_FILE,
ForceArray => [ 'remediation', 'network_li' ] );
print(Dumper($config_xml));
Это печатает:
$VAR1 = {
'name' => 'instance_1',
'remediation' => {
'scan_src_ip' => {
'type' => 'scan_src_ip',
'config' => {
'string' => {
'content' => 'Scan',
'name' => 'action'
}
}
}
}
};
Новый код с XML :: Twig:
my $twig = XML::Twig->new();
$twig->parsefile($CONFIG_FILE);
my $config_xml = $twig->simplify(forcearray => [ 'remediation', 'network_li' ]);
print(Dumper($config_xml));
Вывод:
$VAR1 = {
'remediation' => {
'scan_src_ip' => {
'type' => 'scan_src_ip',
'config' => {
'string' => {
'action' => {
'content' => 'Scan'
}
}
}
}
}
};
Я не понимаю, почему вывод из XMLIn отличается от ветки.
Какой вариант мне не хватает в ветке, чтобы сделать его точно таким же, как XMLIn?
Любая помощь будет оценена.