Как я могу сделать вывод XML :: Simple более удобным для человека? - PullRequest
0 голосов
/ 09 ноября 2009

Я использую модуль XML :: Simple для разбора файла XML. Когда я запускаю следующий скрипт, я не получаю данные в удобочитаемой форме, и поэтому трудно увидеть выходные данные разобранного XML-файла.

Код:

    #!usr/bin/perl -w

    use XML::Simple;
    my $ref = XMLin('SampleXML.xml');

    use Data::Dumper;
    print Dumper($ref);

Есть ли способ, которым мы можем получить анализируемый вывод в каком-то читаемом формате?

Ответы [ 4 ]

4 голосов
/ 09 ноября 2009

Что не читается в Data :: Dumper? Как бы вы определили «читабельный»? Исходный XML был «читабельным» форматом. :)

Возможно, если вы объяснили, что вы собираетесь делать с XML после того, как он был прочитан и проанализирован, мы можем помочь вам с этим шагом.

3 голосов
/ 10 ноября 2009

Определение «читабельный» действительно зависит от того, о ком вы говорите. Data::Dumper подходит для относительно небольших структур данных, которые должны интерпретироваться программистом Perl. Не очень хорошо, если вы используете глубоко вложенную структуру или просите администратора прочитать данные.

YAML обеспечивает более сжатый формат для выгрузки структур данных, и его достаточно легко прочитать. Первоначально он был разработан людьми, работающими над более компактной версией Data::Dumper под названием Data :: Denter .

Если вам нужно работать с огромными структурами или предоставлять данные непрограммисту, вам лучше создать собственный формат, который легко читается и скрывает сложность. В этих случаях вы хотите автоматизировать проверки и суммировать как можно больше. Люди сосут при просмотре больших списков данных. Если это так, то вам нужно будет разработать собственный формат, соответствующий потребностям вашего конкретного набора данных и предполагаемой аудитории.

3 голосов
/ 09 ноября 2009

Под понятным человеку я предполагаю, что вы имеете в виду «довольно напечатанный» (например, новые строки для каждого тега, отступа и сына). Вы можете попробовать XMLPrettyPrint .

0 голосов
/ 09 ноября 2009
# remember to parse with KeepRoot
print XMLout($ref, (AttrIndent => 1,  KeepRoot => 1)); 

Я не знаю, почему вы хотите это сделать, но просто чтобы ответить на ваш вопрос, это еще один способ напечатать XML обратно в удобочитаемой форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...