2010-01-13 11 views
0

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

print Dumper($data); 

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

ответ

2
my $ref = XMLin(...); 

# ... 

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

Используйте метод 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> 
Смежные вопросы