#!/usr/bin/perl --
use strict;
use warnings;
use XML::XSH2;
xsh(<<'__XSH__');
open "fudge.xml";
ls --indent /;
pwd ;
cd /fudge/factory ;
pwd ;
foreach //drop {
if not( bindname/text()[contains(.,'abcde')] ){
set bindpass xsh:subst(
bindpass/text(),
"welcome",
"W-e-l-c-o-m-e",
"i"
);
};
};
ls --indent /;
save --indent :b /; # overwrite original file, :b means backup
__XSH__
__END__
$ perl xsh.922557.pl
parsing fudge.xml
done.
qqqqq
welcome
abcde
welcome
Found 1 node(s).
/
/fudge/factory
qqqqq
W-e-l-c-o-m-e
abcde
welcome
Found 1 node(s).
Document saved into file 'fudge.xml'.
$ ls -loanh fudge*
-rw-rw-rw- 1 0 252 2011-08-26 06:05 fudge.xml
-rw-rw-rw- 1 0 234 2011-08-26 06:05 fudge.xml~