[% loop.size %] shows you 3 because GlobalConfiguration (in template) becomes 
hashref instead of arrayref with 3 keys. Try to use the following template:

[% USE Dumper %]
[% FOREACH g= GlobalConfiguration -%]
  [% Dumper.dump(g) %]
  [% g.TC %] qdisc del dev [% g.DEV %] root
[% END %] 

and you'll see what I mean.

On Fri, 29 Jul 2005 16:08:59 +0300
Ghais Issa <[EMAIL PROTECTED]> wrote:

> Greets Pronichev Alexander and all
> 
> if you replace the previous xml file with this one:
> 
> <TC>
> <GlobalConfiguration>
>        <TC>`tc1`</TC>
>        <DEV>eth1</DEV>
>        <Group>
>                <Name>MasterGroup</Name>
>                <ID>3</ID>
>                <Prio>1</Prio>
>                <Uplink>32</Uplink>
>                <Downlink>128</Downlink>
>        </Group>
>        <Group>
>                <Name>MinorGroup</Name>
>                <ID>2</ID>
>                <Prio>2</Prio>
>                <Uplink>16</Uplink>
>                <Downlink>64</Downlink>
>        </Group>
> </GlobalConfiguration>
> </TC>
> 
> not if you remove all the <GlobalConfiguration> tags,
> PS thanks for the quick reply
> 
> On 7/29/05, Pronichev Alexander <[EMAIL PROTECTED]> wrote:
> > It works fine on my local machine... It produces nothing after removing 
> > <GlobalConfiguration> tags
> > 
> > On Fri, 29 Jul 2005 15:51:28 +0300
> > Ghais Issa <[EMAIL PROTECTED]> wrote:
> > 
> > > Hello everyone,
> > > I am writing a little program to generate configuration files out of
> > > templates and xml data files,
> > > this is a sample template
> > >
> > > [% FOREACH g= GlobalConfiguration -%]
> > > [% g.TC %] qdisc del dev [% g.DEV %] root
> > > [% END %]
> > >
> > >
> > > and this is a sample xml data file
> > >
> > > <TC>
> > > <GlobalConfiguration>
> > >       <TC>`tc1`</TC>
> > >       <DEV>eth1</DEV>
> > >       <Group>
> > >               <Name>MasterGroup</Name>
> > >               <ID>3</ID>
> > >               <Prio>1</Prio>
> > >               <Uplink>32</Uplink>
> > >               <Downlink>128</Downlink>
> > >       </Group>
> > >       <Group>
> > >               <Name>MinorGroup</Name>
> > >               <ID>2</ID>
> > >               <Prio>2</Prio>
> > >               <Uplink>16</Uplink>
> > >               <Downlink>64</Downlink>
> > >       </Group>
> > > </GlobalConfiguration>
> > > <GlobalConfiguration>
> > >       <TC>`tc2`</TC>
> > >       <DEV>eth2</DEV>
> > >       <Group>
> > >               <Name>MasterGroup</Name>
> > >               <ID>3</ID>
> > >               <Prio>1</Prio>
> > >               <Uplink>32</Uplink>
> > >               <Downlink>128</Downlink>
> > >       </Group>
> > >       <Group>
> > >               <Name>MinorGroup</Name>
> > >               <ID>2</ID>
> > >               <Prio>2</Prio>
> > >               <Uplink>16</Uplink>
> > >               <Downlink>64</Downlink>
> > >       </Group>
> > > </GlobalConfiguration>
> > > </TC>
> > >
> > > the code, is
> > > #!/usr/bin/perl -w
> > > use warnings;
> > > use strict;
> > > use XML::Simple;
> > > use Template;
> > >
> > >
> > > my $file = 'faysal.xml';
> > > my $xs = XML::Simple->new();
> > >
> > > my $doc = $xs->XMLin($file);
> > > my $i = 0;
> > > #foreach my $key1 (keys(%$doc)){
> > > #    $i++;
> > > #    print "$key1\n$i\n";
> > > #}
> > > my $tt = Template->new;
> > > $tt->process('faysal.tmplt', $doc) or die $tt->error;
> > >
> > >
> > > Now, this works just fine with the following output:
> > > `tc1` qdisc del dev eth1 root
> > > `tc2` qdisc del dev eth2 root
> > >
> > > however if i remove the second
> > > <GlobalConfiguration>........</GlobalConfiguration> tags, the program
> > > doesn't work correctly, it produces the following output:
> > >  qdisc del dev  root
> > >  qdisc del dev  root
> > >  qdisc del dev  root
> > >
> > > without any of the variables,
> > > i tried adding this line to the template file to see the size of the loop
> > > [% loop.size %] and it says, 3 while it should be one
> > >
> > > can anyone please tell me what the problem is here, and shouldn't the
> > > loop be processed only once, with the correct variable replacements
> > >
> > > Best Rgds,
> > >
> > > _______________________________________________
> > > templates mailing list
> > > [email protected]
> > > http://lists.template-toolkit.org/mailman/listinfo/templates
> > 
> > 
> > --
> > WBR dyker
> > Agava Software
> > 
> 
> 
> -- 
> Wherever a story ends, a new story might begin.
> 
> _______________________________________________
> templates mailing list
> [email protected]
> http://lists.template-toolkit.org/mailman/listinfo/templates


-- 
WBR dyker
Agava Software

_______________________________________________
templates mailing list
[email protected]
http://lists.template-toolkit.org/mailman/listinfo/templates

Reply via email to