Как проанализировать XML, который может иметь от 0 до N количество узлов, используя Perl

218
Shon Cleneeto

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

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

foreach $FileContainerRec (@{$XmlFile->}) { $FileContainer = 'C'.$FileContainerCt; foreach $FileRec (@{$FileContainerRec->})  { $File = $FileContainer.'file'.$FileCt; $OutFileName = $FileRec->; $ActiveIndicator = $FileRec->; $AuditFlag = $FileRec->; $Delimiter = $FileRec->; @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.

1
Любая причина, почему вы не используете одну из многих доступных библиотек разбора XML? mtak 6 лет назад 1
Для близкого избирателя вопросы Perl находятся в теме на [su]. DavidPostill 6 лет назад 0
Вам следует избегать `XML :: Simple`. [Документация для самого модуля говорит об этом] (https://metacpan.org/pod/XML::Simple): * Использование этого модуля в новом коде не рекомендуется. Доступны другие модули, которые обеспечивают более простые и согласованные интерфейсы. В частности, настоятельно рекомендуется `XML :: LibXML`, а` XML :: Twig` - отличная альтернатива. * Если вы отредактируете свой вопрос, чтобы показать некоторые пригодные для использования данные XML, я напишу пример кода. Borodin 6 лет назад 0
@mtak: * «Есть ли причина, по которой вы не используете одну из множества доступных библиотек разбора XML?» * Мне кажется, что OP использует `XML :: Simple`. Borodin 6 лет назад 0
Мы не сможем вам помочь без описания проблемы и некоторых достоверных XML-данных. *** Если вы отредактируете свой вопрос, чтобы показать некоторые пригодные для использования данные XML, я напишу пример кода *** Borodin 6 лет назад 0

0 ответов на вопрос