如何使用bash或perl更改XML中的参数值?

时间:2012-11-05 09:42:41

标签: xml perl

我在下面有一个xml,需要修改一些参数值

<test name="MyRawExample" preserve-order="true">
    <parameter name="example-parameter" value="11111" />
    <classes>
        <class name="com.ericol.nco.blocktests.example.ExampleTestcase" />
    </classes>
</test>

我需要查找特定的参数名称,然后用新的输入值替换相应的值并更新xml文件。

我想知道是否有人可以帮助我如何更改它或为我提供严格的文档以便我能找到最有效的脚本来实现这一目标。

此致 Behzad

1 个答案:

答案 0 :(得分:6)

正如Mortiz所说,你应该首先努力解决问题。

考虑到这一点,看看XML::Twig Perl模块。它可以让你轻松做你想做的事。

更新:既然你已经做了一些工作并提出了一些代码,那么这是一个有效的解决方案:

#!/usr/bin/perl -w
use strict;
use XML::Twig;

my $twig=XML::Twig->new(   
    twig_handlers => { 
        parameter  => sub {
            if ($_->att('name') eq 'example-parameter') {
                $_->set_att('value' => '22222') 
            }
        }
    },
    pretty_print => 'indented',
);

$twig->parsefile('src/main/resources/exampleSuite.xml');
$twig->flush;

我会留给你做文件更换。