http://www.perlmonks.org?node_id=999274


in reply to Some questions from beginning user of XML::LibXML and XPath

If you find XML::LibXML too verbose, you might like its wrapper XML::XSH2:
#!/usr/bin/perl use warnings; use strict; use XML::XSH2; $XML::XSH2::Map::file = '1.xml'; $XML::XSH2::Map::project = 'Release DLL|Win32'; $XML::XSH2::Map::old = 'ReleaseDLL'; $XML::XSH2::Map::new = 'ReleaseDLL32'; xsh << 'end ;' open $file ; register-namespace msb http://schemas.microsoft.com/developer/msbu +ild/2003 ; for //msb:PropertyGroup[contains(@Condition, $project)] { for ( ./msb:IntDir | ./msb:OutDir ) { set . xsh:subst(text(), $old, $new) ; } } save :b ; end ;
One of the features of xsh is you can run it in interactive mode in which it is easy to test your more complicated XPath expressions.
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ