Как я могу сохранить данные XML в файл с XML :: Simple? - PullRequest
0 голосов
/ 13 января 2010

Я использую пакет XML :: Simple для импорта файла XML и изменения некоторых свойств некоторых дочерних тегов. Изменение отображается, когда данные сбрасываются с помощью:

 print Dumper($data);

Но как я могу записать эти отредактированные данные в новый файл XML? Я прошел страницу CPAN, но некоторый код, касающийся этого, действительно помог бы.

Ответы [ 2 ]

2 голосов
/ 13 января 2010

Используйте метод XMLout с опцией OutputFile. Вот пример (имена были изменены, чтобы защитить невинных:):

use strict;
use warnings;
use XML::Simple;

my $href = {
      'dir'        => '/tmp/foo/',
      'file'       => '/tmp/foo.debug',
      'abc'        => {
          'boo' => {
              'num'     => '55',
              'name'    => 'bill',
          },
          'goo' => {
              'num'     => '42',
              'name'    => 'mike',
          },
      }
};

my $xml = XMLout($href, OutputFile => 'out.xml');

__END__

The contents of the file 'out.xml' are:

<opt dir="/tmp/foo/" file="/tmp/foo.debug">
  <abc name="bill" num="55" />
  <abc name="mike" num="42" />
</opt>
2 голосов
/ 13 января 2010
my $ref = XMLin(...);

# ...

open my $fh, ">", $path or die "$0: open $path: $!";
print $fh XMLout($ref);
close $fh or warn "$0: close $path: $!";
...