2010-01-13 89 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>