我需要在700多个XML文件上查找和替换以下内容:
<base>7.4</base>
需要成为
<base>7.2</base>
然而,我必须使用的唯一工具是Notepad ++,当我尝试执行&#34;替换文件时它会不断崩溃&#34;功能。还有另一种简单的方法来执行此质量查找和替换吗?我不是一个程序员,但他们都在同一个文件夹中,也许我可以使用.bat文件来运行它们?关于做什么或如何写的任何建议都会非常感激。
提前致谢,
克莱特
答案 0 :(得分:0)
XML很难处理,因为虽然看起来像一样纯文本 - 但它实际上并非如此。因此,使用基于文本的&#39;是不理想的。模式匹配以替换它,因为......好吧,你可以打破它的格式。就个人而言,我建议:
XML::Twig
模块(ppm install XML::Twig
); thisscript.pl file1.xml file2.xml file3.xml
)喜欢这个
#!/usr/bin/env perl
use strict;
use warnings;
use XML::Twig;
sub replace_base {
my ( $twig, $base ) = @_;
if ( $base->text eq "7.2" ) {
$base->set_text("7.4");
}
}
#iterate the files on the command line
foreach my $filename (@ARGV) {
#set up the processor
my $twig = XML::Twig->new(
#output formatting
'pretty_print' => 'indented_a',
#every time a 'base' element is encountered, run replace_base on it.
'twig_handlers' => { 'base' => \&replace_base }
);
#process this file
$twig->parsefile($filename);
#save the results to a '.new' file.
open( my $output, ">", "$filename.new" ) or die $!;
print {$output} $twig->sprint;
close($output);
}
答案 1 :(得分:0)
然后: