Bjorn Van Blanckenberg am Donnerstag, 19. Januar 2006 09.33:
> I have some elements in my xml that are empty but have attributes.
> I would like that I can group the element in function of Attribute Name.
>
>        <Layout Class="Parameter" ID="r060116_103344354_000026"
> Status="Available">
>          <LayerList>
>            <LayerDetails Name="nl-BE"/>
>            <LayerDetails Name="fr-BE"/>
>            <LayerDetails Name="nl-NL"/>
>          </LayerList>
>        </Layout>
>
> I read in I get
>
> $VAR1 = {
>            'ID' => 'r060116_103344354_000026',
>            'Status' => 'Available',
>            'LayerList' => {
>                             'LayerDetails' => [
>                                                 {
>                                                   'Name' => 'nl-BE'
>                                                 },
>                                                 {
>                                                   'Name' => 'fr-BE'
>                                                 },
>                                                 {
>                                                   'Name' => 'nl-NL'
>                                                 }
>                                               ]
>                           },
>            'Class' => 'Parameter'
>          };
>
>
> I would like it when the xml is readed in to became
>
> {
>       'ID' => 'r060116_103344354_000026',
>          'Status' => 'Available',
>       'LayerList' => {
>                             'LayerDetails' => [ 'nl-BE', 'fr-BE', 'nl-
> NL' ]
>                       },
>       'Class' => 'Parameter'
>     }
>   }
>
> I've tried to use
> # KeyAttr => [ list ]
> # KeyAttr => { list }
> # GroupTags => { grouping tag => grouped tag }
>
> even an combination of KeyAttri and GroupTags but don't get the
> desired output

Just in case it's not possible with XML::Simple, you could use a workaround on 
the result data structure by transforming it with:

$VAR1->{LayerList}->{LayerDetails}=
   [ map {%$_} @{$VAR1->{LayerList}->{LayerDetails}} ];

hth, joe


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to