6

YAML リストを適切な形式の XML に変換する CPAN のモジュールはありますか?

YAML から:

- fruits: 
  - apple
  - pear
  - orange

XML へ:

<fruits>
  <apple />
  <pear />
  <orange />
</fruits>
4

3 に答える 3

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

そのためのオプションの組み合わせがDWYWになる可能性があり、必要なルート名などを取得するためにデータ構造を調整する必要がある場合があります。目がくらむほどのオプションの配列から、XMLを他のデータ形式にシリアル化およびマーシャリングすることがわかりますXMLout明らかに単純ではありません。読み取り:XML::SimpleおよびYAML

于 2012-12-04T21:18:45.503 に答える
1

No there is no CPAN module for that. there are CPAN modules to read YAML and there are modules to write XML. The data transfer will be perl data structure.

The question is what schema your XML should be in, and there are many different XML modules, so there is also no one perfect answer.

于 2012-08-08T18:04:04.100 に答える
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 は正しいパッケージであり、ポッドのドキュメントにあるような 'XML::YAML_PERL' ではありません。

于 2016-09-09T06:20:04.277 に答える