details details details details #### details details details details #### use XML::DOM; my $xml_file = “./sample.xml”; my $parser = new XML::DOM::Parser; my $doc = $parser->parsefile($xml_file); my $module_node = $doc->getElementsByTagName(“module”); my $module1 = $module_node->item(0); my $module1_node = $module1->getElementsByTagName(“moduleref”); for(my $i=0;$i<$module1_node->getLength;$i++){ my $node = $module1_node->item($i); my $node_name = $node->getAttribute(“name”); my $new_node = &getModule($node_name); if($new_node){ replace($node,$new_node); } else{ do nothing… } } sub getModule{ my $module_name = shift; for(my $i=1;$i<$module_node->getLength;$i++){ my $sub_node = $module_name->item($i); my $sub_node_name = $sub_node->getAtrribute(“name”); if($module_name eq $sub_node_name){ return $sub_node; } } }