#!/usr/bin/perl -- use strict; use warnings; use XML::Simple; use Data::Dumper; my $xml = q~ file file.txt file1 file1.txt ~; print $xml,$/; my $data = XMLin($xml); print Dumper( $data ); for my $key( keys %{ $data->{test} } ){ $data->{test}{$key}{href} =~ s/\.txt$/.xml/; } print XMLout($data, RootName=>'root', NoAttr=>1,XMLDecl => 1); __END__ file file.txt file1 file1.txt $VAR1 = { 'test' => { 'file1' => { 'href' => 'file1.txt' }, 'file' => { 'href' => 'file.txt' } } }; file file.xml file1 file1.xml