1

Как обрабатывать XML, который может иметь один или несколько вхождений узла в файле в Perl.

В текущем решении, представленном ниже,

foreach $FileContainerRec (@{$XmlFile->{FileContainer}})
{
    $FileContainer           = 'C'.$FileContainerCt;
     foreach $FileRec (@{$FileContainerRec->{File}}) 
     {
       $File                   = $FileContainer.'file'.$FileCt;
       $OutFileName            = $FileRec->{OutFileName};
       $ActiveIndicator        = $FileRec->{ActiveIndicator};
       $AuditFlag              = $FileRec->{AuditFlag};
       $Delimiter              = $FileRec->{Delimiter};
       @FileDesc=();
       @FileDesc=($OutFileName,$ActiveIndicator,$AuditFlag,$Delimiter);
       $FileList{$File}=[@FileDesc];
       $FileCt++;
     }
     $FileContainerCt++;
     $FileCt=1;
} 

Пример ip xml:

<Document>
<FileContainer>
<File>
......
</File>
<File>
......
</File>
</FileContainer>
<FileContainer>
<File>
......
</File>
<File>
......
</File>
</FileContainer>
<Document>

Выход и май могут варьироваться от 0 до n раз.

Фрагмент кода Perl выбрасывает ошибку как «Не ARRAY Referance», когда у нас есть один «FileContainer» или «File» Nodes.

0