Преобразование XML :: Simple to XML :: Twig не дает того же результата - PullRequest
0 голосов
/ 15 января 2019

Я должен заменить использование 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?

Любая помощь будет оценена.

...