首页 > 解决方案 > 如何在 perl 中格式化从 XML::LibXML 创建的 xml

问题描述

我正在使用 XML::LibXML 模块在 Perl 中创建 XML 数据但是当我将数据写入文件时想要漂亮地打印它,这样它就可以很容易地阅读。

下面是我如何从我的 perl 脚本创建 xml 的快照:

my $xml = XML::LibXML::Document->new('1.0', 'UTF-8');
$xml->createElement('A');
$elem->setAttribute('B',data)

有什么方法可以使用 XML::LibXML 格式化 XML,因为我只需要坚持使用这个模块。

标签: perl

解决方案


该方法XML::LibXML::Document::serialize将 xml 文档写为文本。它的参数允许对输出格式进行有限控制。

XML::LibXMLlibxml2系统库的单板。该库带有 2 个空格的硬编码缩进,因此除非您创建自己的漂亮打印机,否则您的选择将受到限制。

但是,有许多独立的实用程序可以重新格式化语法上有效的 xml 并允许更细粒度的控制,并且可以作为后处理器从 perl 内对带有序列化 xml 的文件运行。我对xmlstarlet和很满意xmllint

另一个问题是你是否真的想投入很多资源来进行这项工作。如果您只需要人类可读的版本进行调试或乱序检查,将数据加载到 Chrome 或 Firefox 等浏览器中可能就足够了——它们通过非常不错的漂亮打印机运行 xml 数据。


推荐阅读