我使用XML :: Simple模块来解析XML文件。当我运行以下脚本时,我不会以人类可读的形式获取数据,因此很难看到解析的XML文件的输出。
代码:
#!usr/bin/perl -w
use XML::Simple;
my $ref = XMLin('SampleXML.xml');
use Data::Dumper;
print Dumper($ref);
有没有办法以某种可读格式获得解析输出?
答案 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的方法。