如何使用perl修改应该在同一个xml文件中反映的xml值?

时间:2015-06-18 10:30:07

标签: perl xml-parsing xml-twig

以下是我编写的用于修改xml文件中特定值的perl脚本 - neo-datasource.xml

我可以使用->toString在输出控制台中打印修改后的xml内容,但我希望将这些更改反映在名为neo-datasource.xml的同一个xml文件中,而不是在控制台中打印。 / p>

你能分享一下你的想法吗?

use strict;
use warnings;

use XML::Twig;


my $twig = XML::Twig->new( keep_spaces => 1 );

$twig->parsefile('C:\Users\IBM_ADMIN\Desktop\dbautomate\neo-datasource.xml');

my ($class_string) = $twig->findnodes('//var[@name="d1new1d1"]/struct[@type="coldfusion.server.ConfigMap"]/var[@name="password"]/string');
$class_string->set_text('NoDatabase');


print $twig->toString;

1 个答案:

答案 0 :(得分:1)

你几乎就在那里 - 你只需要打开文件进行书写和打印(而不是STDOUT),例如:

open(my $fh, '>', 'C:\Users\IBM_ADMIN\Desktop\dbautomate\neo-datasource .xml')
    or die "Cannot open XML file for writing\n";
$fh->print($twig->toString);