0

フォームのハッシュがあります

my $hash = {
    'Key' => "ID1",
    'Value' => "SomeProcess"
};

これをフォームのXMLフラグメントに変換する必要があります

<Parameter key="ID1">Some Process a</Parameter> 
<Parameter key="ID2">Some Process b</Parameter> 
<Parameter key="ID3">Some Process c</Parameter>

これはどのように行うことができますか?

4

1 に答える 1

3

まず第一に、あなたのサンプルは有効なXMLドキュメントではないので、XML :: Simpleは、それを出力するために少し仮帆装をします。フラグメントはそれほど多くなく、ドキュメントを出力することを期待しているようです。しかし、私はこの構造でその出力を生成することができました:

my $xml
    = {
        Parameter => [
          { key => 'ID1', content => 'Some Process a' }
        , { key => 'ID2', content => 'Some Process b' }
        , { key => 'ID3', content => 'Some Process c' }
        ]
    };


print XMLout( $xml, RootName => '' ); # <- omit the root

XML::Simpleはそれを読み戻すことができないことに注意してください。

出力は次のとおりです。

  <Parameter key="ID1">Some Process a</Parameter>
  <Parameter key="ID2">Some Process b</Parameter>
  <Parameter key="ID3">Some Process c</Parameter>

したがって、構造を私が示した形式に変換できれば、RootName => ''パラメーターを使用してフラグメントを印刷できます。

したがって、フォーマットを考えると、次のようなものが機能する可能性があります。

$xml = { Parameter => [] };
push( @{ $xml->{Parameter} }
    , { key => $hash->{Key}, content => $hash->{Value} }
    );
于 2011-04-21T14:37:42.777 に答える