を使用してXMLを解析するプログラムがありますXML::Simple
。ある時点で、XMLにはシリアル化される冗長なエントリが含まれているように見えますが、そのデータを単純な文字列として戻す方法を私は一生理解できません。このXMLのサブセットがあり、によって配列に入れられているように見えますXML::Simple
。Dumper($data)
ここでデータが解析されたXMLである場合、関連するサブセクションは次のとおりです。
Audio = [
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
}
];
XMLで解析された出力の小さなサブセットを次のような変数に渡します。
my @audiostuff = $data->{ClipContent}->{EssenceList}->{Audio};
これのダンプを出力すると、次のようになります。
$VAR1 = [
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
}
];
したがって、キャプチャされたアレイではすべてが正しいように見えます。配列には1つの要素があるように見え、その1つの要素の中に4つのハッシュがあります。これは私が立ち往生しているところです。これらのハッシュの情報を再び取得する方法がわかりません。私は約40の異なることを試しましたが、壁に頭をぶつけているだけです。各ハッシュの値を単純なローカル配列(たとえば、次のようなもの)に渡すだけで、これらの4つのエントリすべてが含まれ、などで@samplingrate
簡単に参照できるようにしたいと思います。$samplingrate[0]
どんな助けでもいただければ幸いです。