use XML::LibXML; my $doc = XML::LibXML->new->parse_fh(\*DATA); my ( $os ) = $doc->findnodes('//os[text()="Unix"]'); my $content = $os->firstChild(); $content->setData("Solaris"); print $doc->serialize(1); __DATA__ Unix #### Solaris
## Solaris