#!/usr/bin/perl use warnings; use strict; use Data::Dumper; use Template; use XML::LibXML::Reader; my $file; open( $file, 'DTC_Specification_transformed.xml'); my $reader = XML::LibXML::Reader->new( IO => $file ) or die ("unable to open file"); my %nums; my $num=0; while ($reader->nextElement( 'DATA' ) ) { $num=$num+1; $reader->nextElement( 'Test' ); my $information = $reader->readOuterXml(); $reader->nextElement( 'testinfo' ); my $testnumber = $reader->readOuterXml(); $nums{$infortion}= $testnumber; } print %nums; close($file); my $template = Template->new(); my $filename = 'output.tex'; $template->process(\*DATA, %nums, $filename) || die "Template process failed: ", $template->error(), "\n"; system( "pdflatex $filename" ); __DATA__ \documentclass{article} \title{testinformation of each data} \author{michel\\ \begin{document} \maketitle [% FOREACH st IN test %] DTC number:[% st.test %] \\ test information[% st.testinfo.temperature%] [%st.testinfo.humidity %] [% END %] \end{document} #### $var1={ 1'=>' 2'=>' ........so many tests } #### testnumber= 1, testinfo: temperature= "23", humidity="80" testnumber= 2, testinfo: temperature= "27", humidity="75"