#------------------------------------------------------------------------------ # This function is to add a twig handler to remove the node in parameter #------------------------------------------------------------------------------ sub delete_node { #------------------------------------------------------------------------------ my ($node_to_delete,$file_to_read) = @_; copy($file_to_read,$file_to_read.'-tmp_'.$dateLog.'.xml') open my $file_end, '>', $file_to_read.'-parsed_'.$dateLog.'.xml' my $handlers = {$node_to_delete => section_delete_node($file_end)}; my $twig = new XML::Twig(pretty_print => 'indented', twig_handlers => $handlers,)->parsefile($file_to_read); close $file_end; if (-s $file_to_read.'-parsed_'.$dateLog.'.xml') { move($file_to_read.'-parsed_'.$dateLog.'.xml', $file_to_read); } else { move($file_to_read.'-tmp_'.$dateLog.'.xml', $file_to_read); } } #------------------------------------------------------------------------------ # This function remove the node in parameter #------------------------------------------------------------------------------ sub section_delete_node { my ($file_end)= @_; return sub { my( $t, $section)= @_; $section->delete(); $t -> flush($file_end); } } #### <position xsi:nil="true"/> <names> <first_name/> <last_name>BA</last_name> </names> <agedata> <age xsi:nil="true"/> <as_of_date xsi:nil="true"/> <dob xsi:nil="true"/> <dobs> <dob xsi:nil="true"/> </dobs> <deceased xsi:nil="true"/> </agedata> </person> <details> <id_numbers> <id loc="INT" type="">fd</id> </id_numbers> <place_of_birth xsi:nil="true"/> <locations> <location country="df" city="re" state="">Shahrara</location> </locations> </details> </record> ##</code><code>## <?xml version="1.0" encoding="UTF-8"?> <record category="B" editor="" entered="2000-12-04" sub-category="PEP" uid="7320" updated="2018-12-12"> <person ssn="" e-i="E"> <title xsi:nil="true"/> <position xsi:nil="true"/> <names> <first_name/> <last_name>BA</last_name> </names> <agedata> <age xsi:nil="true"/> <as_of_date xsi:nil="true"/> <deceased xsi:nil="true"/> </agedata> </person> </record> <details> <id_numbers> <id loc="INT" type="">fd</id> </id_numbers> <place_of_birth xsi:nil="true"/> <locations> <location country="df" city="re" state="">Shahrara</location> </locations> </details>