$var1={
'data'=>{
'employee'=>[
{
'name'=>'suraj',
'number'=>'f11a0478',
'adress'=>' badvel,kadapa,a.p,india',
},
{
'name'=>'misra',
'number'=>'047902',
'adress'=>' raipur,ananthapur,a.p,india',
}...........
...........
],
'company'=>{
'name'=>'bosch',
'location'=>'banglore',
'domain'=>{
'java'=>{
'employee'=>[
{
'name'=>'suraj',
'number'=>'f11a0478',
'experience'=>{
'years'=>'3',
'projects'=>'4',
}
},
{
'name'=>'misra',
'number'=>'047902',
'experience'=>[
{
'years'=>'1',
'projects'=>'1',
},
{
'years'=>'1',
'projects'=>'1',
}
]
},
]
}
}................
.................
};
####
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
use XML::Simple;
use Template;
my $xml = new XML::Simple;
my $data = $xml->XMLin("data.xml", ForceArray=>['dat','employee','experience']);
#print Dumper($data);
my $template = Template->new();
my $filename = 'output1.tex';
$template->process(\*DATA, $data, $filename)
|| die "Template process failed: ", $template->error(), "\n";
system( "pdflatex $filename" );
__DATA__
\documentclass[a4paper,leqno,twoside]{article}
\usepackage[latin1]{inputenc}
\usepackage[english]{babel}
\begin{document}
[% FOREACH comp IN company %]
[% comp.name %]
[% comp.location%]
employeedata:
[% FOREACH employee IN comp.domain.java.employee %]
[% employee.name %][% employee.number %]
[% FOREACH obj IN data%]
[% FOREACH beha IN obj.employee %]
[% IF beha.number == employee.number && beha.name == employee.name %]
[% beha.address %],
[% LAST %]
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]
\end{document}
####
if there is three persons under employee it printing like this.
person address1, person2 address, person3 address,
if two employee names is there it printing like this.
person address1, person2 address,,
but I need to print like this
if three employee names is there
person address1, person2 address or person3 address.
if two employee names is there like this
person address1, person2 address.
if only one employee name is there like this
person address1.
####
[% FOREACH comp IN company %]
[% comp.name %]
[% comp.location%]
employeedata:
[% FOREACH employee IN comp.domain.java.employee %]
[% employee.name %][% employee.number %]
[% FOREACH obj IN data%]
[% FOREACH beha IN obj.employee %]
[% IF beha.number == employee.number && beha.name == employee.name %]
[% comp.domain.java.employee.size %]
[% IF comp.domain.java.employee.size==1 %]
[% beha.address %].
[% ELSIF comp.domain.java.employee.size==2 %]
[% beha.address %],[% beha.address %].
[% ELSIF comp.domain.java.employee.size==3 %]
[% beha.address %],[% beha.address %]or[% beha.address %].
[% LAST %]
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]
####
if one employee name under employee tag is there like this
person address1.
if two employee names is there like this
person address1, person1 address.
person address2, person2 address.
if three employee names is there like this
person address1, person1 address or person1 address.
person address2, person2 address or person2 address.
person address3, person3 address or person3 address.