CPAN中是否有任何模块可以将YAML列表转换为格式良好的XML?
来自YAML:
- fruits:
- apple
- pear
- orange
到XML:
<fruits>
<apple />
<pear />
<orange />
</fruits>
答案 0 :(得分:2)
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
可能是XMLout
的选项组合,它们将是DWYW,您可能需要跳过数据结构以获取所需的根名称等。您将从中注意到将XML序列化和编组为其他数据格式的令人眼花缭乱的选项绝对不简单。阅读:XML::Simple和YAML。
答案 1 :(得分:1)
没有没有CPAN模块。有CPAN modules to read YAML,有modules to write XML。数据传输将是perl数据结构。
问题是你的XML应该是什么模式,并且有许多不同的XML模块,所以也没有一个完美的答案。
答案 2 :(得分:0)
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”。