使用XML :: Simple或XML :: Twig更新perl中的xml文件

时间:2012-07-06 20:09:48

标签: xml perl

有人可以帮帮我吗?

我想使用perl修改xml文件。 我搜索并找到了像XML :: Simple / XML :: Twig这样的模块但找不到确切的方法。

以下是我的xml文件的一部分。我想修改名称为''sybase'的Driver的值,并将此更改保存到原始文件。

 <Properties>
    <Application>
        <Name>global</Name>
        <Cache>20</Cache>
        <Trace>true</Trace>
        <Drivers>
            <Driver name="sybase"> com.sybase</Driver>
            <Driver name="db2">com.db2</Driver>
        </Drivers>
    </Application>
</Properties>

1 个答案:

答案 0 :(得分:1)

这样做的一个非常惯用的方法是:

#!/usr/bin/perl

use strict;
use warnings;

use XML::Twig;

XML::Twig->new( twig_handlers => 
                  { 'Driver[@name="sybase"]' 
                       => sub { $_->set_text( 'new driver')->flush }
                  },
                keep_spaces => 1, )
         ->parsefile_inplace( 'so.xml');

除此之外,“在适当位置编辑文件”的常用方法是处理文件,将结果输出到临时文件,然后,如果一切正常,则将临时文件重命名为原始文件名。