CPAN 中是否有任何模块可以将 YAML 列表转换为格式良好的 XML?
来自 YAML:
- fruits:
- apple
- pear
- orange
到 XML:
<fruits>
<apple />
<pear />
<orange />
</fruits>
use strictures;
use YAML "Load";
use XML::Simple "XMLout";
my $data = Load(do{ local $/; <DATA> });
print XMLout( $data, XMLDecl => 1 );
__DATA__
---
- fruits:
- apple
- pear
- orange
DWYW可能有多个选项的组合,XMLout
您可能需要调整数据结构以获得所需的根名称等。您会从令人眼花缭乱的选项数组中注意到,将 XML 序列化和编组为其他数据格式是绝对不简单。阅读:XML::Simple和YAML。
不,没有 CPAN 模块。有CPAN 模块来读取 YAML并且有模块来编写 XML。数据传输将是 perl 数据结构。
问题是您的 XML 应该在什么模式中,并且有许多不同的 XML 模块,因此也没有一个完美的答案。
CPAN 可以帮助您使用Util::XML_YAML_PERL。
use Util::XML_YAML_Perl;
my $obj = Util::XML_YAML_PERL->new();
my $yaml_text = <<UNTIL_HERE;
- fruits:
- apple
- pear
- orange
UNTIL_HERE
print $obj->yaml_to_xml( $yaml_text );
# <fruits>
# <apple />
# <pear />
# <orange />
# </fruits>
注意:这个模块的文档有问题,可以使用补丁:Util::XML_YAML_Perl 是正确的包,而不是它的 pod 文档中的“XML::YAML_PERL”。