如何在 perl 中处理文件中可能出现一个或多个节点的 xml。
在下面提供的当前解决方案中,
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次。
当我们有一个“FileContainer”或“File”节点时,perl 代码片段会抛出“不是 ARRAY 引用”的错误。