如何使XML :: Simple的输出更加人性化?

时间:2009-11-09 19:22:24

标签: xml perl parsing

我使用XML :: Simple模块来解析XML文件。当我运行以下脚本时,我不会以人类可读的形式获取数据,因此很难看到解析的XML文件的输出。

代码:

    #!usr/bin/perl -w

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

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

有没有办法以某种可读格式获得解析输出?

4 个答案:

答案 0 :(得分:4)

Data :: Dumper有什么不可读的?你会如何定义“人类可读”?原始XML是“人类可读”的格式。 :)

也许如果您在阅读并解析之后解释了您打算如何处理XML,我们可以帮助您完成该步骤。

答案 1 :(得分:3)

通过人类可读,我猜你的意思是“漂亮印刷”(例如每个标签的新行,缩进和儿子)。您可以尝试XMLPrettyPrint

答案 2 :(得分:3)

“人类可读”的定义实际上取决于您所谈论的是哪个人。对于必须由Perl程序员解释的相对较小的数据结构,Data::Dumper是可以的。如果您使用深层嵌套结构或要求接待员阅读数据,那就不太好了。

YAML为转储数据结构提供了更简洁的格式,并且相当容易阅读。它最初是由致力于Data::Dumper {{1}}的更紧凑版本的人开发的。

如果您需要使用庞大的结构或向非程序员提供数据,最好构建一个易于阅读并隐藏复杂性的自定义格式。在这些情况下,您希望尽可能自动化检查和汇总。人们很难回顾大数据列表。如果是这种情况,那么您需要设计自己的格式,以满足特定数据集和目标受众的需求。

答案 3 :(得分:0)

# remember to parse with KeepRoot
print XMLout($ref, (AttrIndent => 1,  KeepRoot => 1)); 

我不知道您为什么要这样做,但只是回答您的问题,上面是另一种以人类可读的形式打印XML的方法。