perl - 如何在 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,因为我只需要坚持使用这个模块。
解决方案
该方法XML::LibXML::Document::serialize
将 xml 文档写为文本。它的参数允许对输出格式进行有限控制。
XML::LibXML
是libxml2
系统库的单板。该库带有 2 个空格的硬编码缩进,因此除非您创建自己的漂亮打印机,否则您的选择将受到限制。
但是,有许多独立的实用程序可以重新格式化语法上有效的 xml 并允许更细粒度的控制,并且可以作为后处理器从 perl 内对带有序列化 xml 的文件运行。我对xmlstarlet
和很满意xmllint
。
另一个问题是你是否真的想投入很多资源来进行这项工作。如果您只需要人类可读的版本进行调试或乱序检查,将数据加载到 Chrome 或 Firefox 等浏览器中可能就足够了——它们通过非常不错的漂亮打印机运行 xml 数据。
推荐阅读
- c - 如何使用指向结构的指针进行迭代?
- javascript - atan() 返回楠
- html - 角度字段自动完成 HTML5 属性不起作用
- python - 我得到一个关键错误如何摆脱这个
- python - 我的代码在 PyCharm 中通过 main.py 运行,但不是从控制台运行。为什么会这样?
- c# - 我有一个供应商试图与我的 WCF api 通信,他们收到 http:500 错误,但 IIS 日志记录未显示任何详细信息
- spring-boot - 如何在 Spring Boot 中从应用程序属性文件中读取 jpa 命名查询?
- python - 尝试将熊猫系列数据传递给 date_range 函数时,无法将字符串转换为时间戳错误
- ios - Flutter iOS build Failed with Multiple commands 产生错误
- python - 比较班级的日期