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

これを行う非常に慣用的な方法の 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');

これを超えて、「ファイルをその場で編集」する通常の方法は、ファイルを処理し、結果を一時ファイルに出力し、すべてが問題なければ一時ファイルの名前を元のファイル名に変更することです。

于 2012-07-07T16:36:25.673 に答える