1

有人可以帮我吗?

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

下面是我的 xml 文件的一部分。我想修改具有 name='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>
4

1 回答 1

2

一种非常惯用的方法是:

#!/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');

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

于 2012-07-07T16:36:25.673 回答